使用递归的Fibonacci数

时间:2014-03-27 06:07:18

标签: java data-structures

首先,这不是作业,但如果您感觉同样关闭标签,那么仍然可以。

今天早上我试图使用递归找到所有斐波那契数字,但我没有得到正确的解决方案。

所需输出为:数字10 =>斐波纳契数是2,3,5,8

long res=0;
FibonacciTest test = new FibonacciTest();
for(int i=1;i<=num;i++) {
    System.out.println(" "+test.getRecursiveFibonacci(num));
}

public long getRecursiveFibonacci(long number) {
    if ( number <=2) {
        return 1;
    }
    return getRecursiveFibonacci(number-1) + getRecursiveFibonacci(number -2);
}

你可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

应该是:

test.getRecursiveFibonacci(i)

而不是

test.getRecursiveFibonacci(num)

答案 1 :(得分:0)

请注意,斐波那契没有。最多10个是1,1,2,3,5,8所以如果你想打印斐波那契不低于n,那么有更好的方法,但如果你想按照自己的方式做到&amp;根据递归,然后只需更新给定的代码:

long res=0;
FibonacciTest test = new FibonacciTest();
    for(int i=1;i<=num;i++) {
         int j=test.getRecursiveFibonacci(i);
         if(j<=num)
             System.out.println(" "+j);
         else break;
    }

public long getRecursiveFibonacci(long number) {
    if ( number <=2) {
        return 1;
    }
    return getRecursiveFibonacci(number-1) + getRecursiveFibonacci(number -2);
}

注意:如果您不想打印1,1然后使用i = 3启动for循环