这是我的源代码:
public class Fibbonaci {
static int count;
static int size;
public static int Fibbonaci(int n) {
count++;
if (n == 0) {
return 1;
}
if (n % 10 == 0) {
return (Fibbonaci(n / 2) + Fibbonaci(n / 5));
} else if (n % 6 == 0) {
return (Fibbonaci(n / 2) + Fibbonaci(n / 3));
} else {
return (Fibbonaci(n / 3) + Fibbonaci(n / 5));
}
}
public static void main(String[] args) {
int[] lim = new int[1024];
for (int n = 1; n <= lim.length - 1; n++) {
count = 0;
Fibbonaci(n);
size = (int) Math.floor(Math.log(n) / Math.log(2)) + 1;
System.out.print("T(" + size + ") = ");
System.out.println("" + count);
}
}
}
我目前的一些输出是:
T(1) = 3
T(2) = 3
T(2) = 5
T(3) = 5
T(3) = 7
T(3) = 9
T(3) = 7
T(4) = 7
T(4) = 9
T(4) = 11
T(4) = 9
T(4) = 15
如何打印大小和数量的最大值,我可以得到类似于T(1)= 3 T(2)= 5 T(3)= 9 T(4)= 15?<的输出/ p>
答案 0 :(得分:1)
存储每个尺寸的值列表(最好在Map
中),对此列表进行排序并打印最大的元素。
编辑更简单 - 覆盖Map<Integer, Integer>
中每个尺寸的值,并且最新结果是最大值,Map
中的最后一个值是这个大小。
答案 1 :(得分:0)
您可以将最大值存储在变量中并在循环中进行比较
maxValue = 0;
if ( X > maxValue ){
maxValue = X
}
此外,您可以使用集合并订购它,使用比较器。但就是你知道,Fibonacci有更好的实现(只是google for it)
使用列表订购:how to get maximum value from the List/ArrayList
使用比较器http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html