遞推之生兔子,生小牛問題
阿新 • • 發佈:2019-02-03
1 2
#include <stdio.h> #include <stdlib.h> int main() { int n,i; while(scanf("%d",&n)&&n) ) { long long int h[100]; h[1] = 1; h[2] = 2; h[3] = 3; for(i=4;i<=n;i++) h[i] = h[i-1]+h[i-3]; printf("%lld\n",h[n]); } return 0; } 公式為f(n) = f(n-1)+f(n-3) 即昨天的小牛數加剛出生的小牛數(因為三年前的小牛數都具有生育能力,所以剛出生的小牛數就等於三年前的小牛數 , 小牛剛出生的那一年為第一年,所以是三年前,不是四年前)
母牛的故事
Time Limit: 1000MS Memory Limit: 65536KBProblem Description
有一對夫婦買了一頭母牛,它從第2年起每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?
Input
輸入資料由多個測試例項組成,每個測試例項佔一行,包括一個整數n(0< n< 55),n的含義如題目中描述。 n=0表示輸入資料的結束,不做處理。
Output
對於每個測試例項,輸出在第n年的時候母牛的數量。 每個輸出佔一行。
Example Input
2 4 5 0
Example Output
2 4 6
#include <stdio.h> #include <stdlib.h> int main() { int n,i; while(scanf("%d",&n)&&n) { long long int h[100]; h[1] = 1; h[2] = 2; for(i=3;i<=n;i++) h[i] = h[i-1]+h[i-2]; printf("%lld\n",h[n]); } return 0; } 兔子出生的題目同理。