1. 程式人生 > >遞推之生兔子,生小牛問題

遞推之生兔子,生小牛問題

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: 65536KB

Problem 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;
}
兔子出生的題目同理。