有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
样例输入
2
4
5
0
样例输出
2
4
6
思路:
定义一个数组来进行存储数据,存储的为当时那个月份会存在的多少母牛。
如dp[i] 解释为:当为i月份的时候,有dp[i]头母牛
有次得到公式
dp[n]=dp[n-1]+dp[n-3];表示这n-1这一年的牛在n这一年依旧存在,则n这一年的牛会生n-3年那么多的牛
public class femaleCow {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] data = new int[56];
data[1]=1;
data[2]=2;
data[3]=3;//定义初始值
for(int t=4;t<=55;t++){
data[t]=data[t-1]+data[t-3];//本月的母牛数量为上一个月的母牛的数量加上前三个月的母牛的数量
}
while(true){
int n = sc.nextInt();
if(n==0)
break;
System.out.println(data[n]);
}
}
}