打印最大值

时间:2014-02-18 20:11:56

标签: java

这是我的源代码:

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>

2 个答案:

答案 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