類似問題有:
1、排列組合
//遞歸
long fib1(int n){
if (n <= 2){
return 1;
}else{
return fib1(n-1) + fib1(n-2);
}
}
//非遞歸方法O(n)
long fib3 (int n){
long x = 0, y = 1;
for (int j = 1; j < n; j++){
y = x + y;
x = y - x;
}
return y;
}
//公式法O(1)
long fib5(int n){
double z = sqrt(5.0);
double x = (1 + z)/2;
double y = (1 - z)/2;
return (pow(x, n) - pow(y, n))/z + 0.5;
}