1063 -- 【递推练习】兔子繁殖
Description
有一对小兔,过一个月之后长成大兔,到第四个月就可以生下一对小兔,并且以后每个月都 生下一对小兔。而所生的一对小兔也同样到一个月之后长成大兔,到第四个月就可以生下一 对小兔,并且以后也每个月都生下一对小兔.假设所有的兔子均不死亡,问第n个月后共有多少对兔子?请设计一个程序,解决这一问题。
Input
输入仅一个整数n(n <= 50)
Output
输出仅一个整数,为第n个月后共有多少对兔子
Sample Input
5
Sample Output
3
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
int n,f[100];
int main() {
cin>>n;
f[1]=1;
f[2]=1;
f[3]=1;
f[4]=1;
f[5]=2;
for(int i=6;i<=n+1;i++) {
f[i]=f[i-1]+f[i-3];
}
cout<<f[n+1];
return 0;
}