题目链接
题目描述
求斐波那契数列的第 n 项,n <= 39(第0 项为 0)。
斐波那契数列的 前几项为 1, 1, 2, 3, 5, 8…,可以看出斐波那契数列的通项公式为:
f(n) = n, (n < 2)
f(n) = f(n - 1) + f(n - 2) ,(n >= 2)
递归法
public int Fibonacci(int n) {
if (n == 0 )
return 0;
if ( n == 1 || n == 2 )
return 1;
return Fibonacci(n-2) + Fibonacci(n-1);
}
非递归法
public int Fibonacci(int n) {
if (n == 0 )
return 0;
if ( n == 1 || n == 2 )
return 1;
int fir = 1;
int sec = 1;
int ret = 1;
for (int i = 3; i <= n; i++) {
ret = fir + sec;
sec = fir;
fir = ret;
}
return ret;
}