问题:把一对兔子(雌雄各 1 只)放到围栏中,自第 2 个月起,每个月这对兔子都会生出 1 对新兔子,其中雌雄各 1 只,而且每对新兔子自第 2 个月起也会生出 1 对新兔子,也是雌雄各 1 只。问一年后围栏中有多少对兔子?
算法:递推法,第 n 个月兔子总数 = 第 n - 1个月的兔子总数 + 第 n - 2 个月的兔子总数。
int Fibonacci(int n){
int f,f1 = 1,f2 = 1;//f1为前1个月的兔子数,f2为前2个月,f为当前月
for(int i = 3;i <= n;i++){
f = f1 + f2;
f2 = f1;
f1 = f;
}
return f;
}