需要与斐波那契解释

时间:2014-04-06 13:39:02

标签: java fibonacci

我在Stack Overflow上看到过很多斐波纳契的例子,但我没有找到答案。所以,我有一个代码:

public class Fib {
    public static int fib(int n) {
        if (n < 2) {
           return n;
        }
        else {
   return fib(n-1)+fib(n-2);
        }
}

public static void main(String[] args) {
    for (int i=0; i<8; i++)
        System.out.print(fib(i)+", ");
}
}

运行之后,我们将获得 0,1,1,2,3,5,8,13,

我有一个问题:我们如何获得 8 ? FIB(6)= ............

任何人都可以写详细信息吗?

3 个答案:

答案 0 :(得分:1)

fib(0) = 0
fib(1) = 1
fib(2) = fib(1) + fib(0) = 1
fib(3) = fib(2) + fib(1) = 2
fib(4) = fib(3) + fib(2) = 3
fib(5) = fib(4) + fib(3) = 5
fib(6) = fib(5) + fib(4) = 8

当您致电fib(6)时,它会执行fib(5)fib(4)等,直到它遇到基本案例fib(1)fib(0)

答案 1 :(得分:0)

fib(6) = fib(5) + fib(4)  //..
fib(5) = fib(4) + fib(3)  //..
fib(4) = fib(3) + fib(2)  //2 + 1 
fib(3) = fib(2) + fib(1)  //1 + 1
fib(2) = fib(1) + fib(0)  //1 + 0  Begin here (stop condition)

答案 2 :(得分:0)

fib(6) = fib(5)+fib(4) = fib(4)+fib(3)+fib(3)+fib(2) = fib(3)+fib(2)+fib(2)+fib(1)+fib(2)+fib(1)+fib(1)+fib(0) = fib(2)+fib(1)+fib(1)+fib(0)+fib(1)+fib(0)+1+fib(1)+fib(0)+1+1+0 = fib(1)+fib(0)+1+1+0+1+0+1+1+0+1+1+0 = 1+0+1+1+0+1+0+1+1+0+1+1+0=8

希望它有所帮助......