標籤:java 演算法
問題:
此題主要是一個遞推演算法,審題要仔細,小母牛是自它被生下開始第四年開始產子,遞迴公式為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<55),n的含義如題目中描述。
n=0表示輸入資料的結束,不做處理。
Output對於每個測試執行個體,輸出在第n年的時候母牛的數量。
每個輸出佔一行。
Sample Input
2450
Sample Output
246
代碼:
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);}}}}}
hdu 2018 母牛的故事(java)