問題:
此題主要是一個遞推算法,審題要仔細,小母牛是自它被生下開始第四年開始產子,遞歸公式為n=a(n-1)+(n-3).
之前看過別人的算法用了大數,其實沒必要,在范圍內int就可以裝下。
母牛的故事
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 51574 Accepted Submission(s): 25849
Problem Description
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?
Input
輸入數據由多個測試實例組成,每個測試實例占一行,包括一個整數n(0
n=0表示輸入數據的結束,不做處理。
Output
對於每個測試實例,輸出在第n年的時候母牛的數量。
每個輸出占一行。
Sample Input
2
4
5
0
Sample Output
2
4
6
代碼:
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
int n=cin.nextInt();
if(n==0)
break;
else
{
if(n<=4)
{int sum=0;
sum=n;
System.out.println(sum);}
else
{
int a[]=new int[55];
int sum=4;
a[1]=a[2]=a[3]=a[4]=1;
for(int i=5;i<=n;i++){
a[i]=a[i-1]+a[i-3];
sum+=a[i];
}System.out.println(sum);
}
}
}
}
}