public class Fibonacci {
int fib(int n) {
int a;
if(n < 2) return 1;
return (fib(n - 2) + fib(n - 1));
}
public static void main(String[] args) {
Fibonacci f = new Fibonacci();
for(int i = 0; i <= 5; i++)
System.out.println(f.fib(i));
}
}
(fib(n - 2) + fib(n - 1)); 这句怎么理解的,递归调用?
i=0:1
i=1;1
i=2:1+1=2
i=3:1+2=3
i=4:2+3=5
i=5:3+4=7 怎么就等于7了,不是8才对吗。如果我想用设置断点的方式调试,要设置在那里啊。
int fib(int n) {
int a;
if(n < 2) return 1;
return (fib(n - 2) + fib(n - 1));
}
public static void main(String[] args) {
Fibonacci f = new Fibonacci();
for(int i = 0; i <= 5; i++)
System.out.println(f.fib(i));
}
}
(fib(n - 2) + fib(n - 1)); 这句怎么理解的,递归调用?
i=0:1
i=1;1
i=2:1+1=2
i=3:1+2=3
i=4:2+3=5
i=5:3+4=7 怎么就等于7了,不是8才对吗。如果我想用设置断点的方式调试,要设置在那里啊。
不要再问我为什么f(2)是2,f(3)是3,递归嘛,自己算算看