兔子问题(Rabbit problem)
Description
有一种兔子,出生后一个月就可以长大,然后再过一个月一对长大的兔子就可以生育一对小兔子且以后每个月都能生育一对。现在,我们有一对刚出生的这种兔子,那么,n 个月过后,我们会有多少对兔子呢?假设所有的兔子都不会死亡。
Input
输入文件仅一行,包含一个自然数 n。
Output
输出文件仅一行,包含一个自然数,即 n 个月后兔子的对数。
Sample Input 1
1
Sample Output 1
1
Sample Input 2
3
Sample Output 2
2
——摘自YCOJ
简单的递推。
然后我们就可以递推了
#include<bits/stdc++.h>
using namespace std;
int a[100];
int fib(long long n){
if(a[n]==0){
a[n]=fib(n-1)+fib(n-2);
}
return a[n];
}
int main(){
a[1]=a[2]=1;
long long n;
cin >> n;
cout << fib(n);
return 0;
}