題目本身很簡單,用到了簡單的遞推。因爲一隻牛從第四年纔開始生崽,所以第n年的牛個數即爲前一年的牛數加三年前的牛數。即f(n)=f(n-1)+f(n-3),一頭牛第一年的個數是1,第二年的個數是2,第三年的個數是3.
母牛的故事
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61867 Accepted Submission(s): 30672
Problem Description
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?
Input
輸入數據由多個測試實例組成,每個測試實例佔一行,包括一個整數n(0<n<55),n的含義如題目中描述。
n=0表示輸入數據的結束,不做處理。
Output
對於每個測試實例,輸出在第n年的時候母牛的數量。
每個輸出佔一行。
Sample Input
2 4 5 0
Sample Output
2 4 6
Author
lcy
Source
#include <stdio.h> int f(int a) { if(a>0&&a<5) return a; else return f(a-1)+f(a-3); } int main() { int n,s; while(scanf("%d",&n)&&n!=0) { s=f(n); printf("%d\n",s); } return 0; }