母牛的故事
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
Sample Input
2 4 5 0
Sample Output
2 4 6
分析
根据题意,先列出前几年的牛头数,试着找找规律:
第 1 年,有 1 头母牛;
第 2 年,有 2 头母牛;
第 3 年,有 3 头母牛;
第 4 年,有 4 头母牛;
第 5 年,有 6 头母牛 ;
第 6 年,有 9 头母牛;
第 7 年,有 13 头母牛;
第 8 年,有 19 头母牛;
可总结出一条公式 : DP(n)=DP(n-1)+DP(n-3) (n>=4)
参考代码
package DP;
import java.util.Scanner;
public class CowStory {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[] DP=new int[55];
DP[1]=1;
DP[2]=2;
DP[3]=3;
for (int i = 4; i < 55; i++) {
DP[i]=DP[i-1]+DP[i-3];
}
while(sc.hasNextLine() ){
int a=sc.nextInt();
if(a!=0)
System.out.println(DP[a]);
}
sc.close();
}
}