环境:jdk 1.8
题目:求斐波那契数列的第n项(剑指offer面试题10)
n | 0 | 1 | 1< |
---|---|---|---|
f(n) | 0 | 1 | f( n- 1 ) + f( n-2 ) |
方法一:递归
public static long f(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
if(n>1)
return f(n-1)+f(n-2);
return -1;
}
方法二:循环
public static long f2(int n) {
if(n<2) {
return n==1?1:0;
}
long one=0;
long two=1;
long sum=0;
for(int i=2;i<=n;i++) {
sum=one+two;
one=two;
two=sum;
}
return sum;
}