Fibonacci数列(ウサギ繁殖問題)--冬休み作業(第9題)
1016 ワード
雌牛の物語
タイトルの説明
1頭の雌牛がいて、毎年年の初めに1頭の子牛を産んでいます.子牛は4年目から毎年年初にも子牛を産む.プログラミングして実現してn年目の時、何頭の雌牛がありますか?
入力
入力データは複数のテストインスタンスからなり、各テストインスタンスは1行を占め、1つの整数n(0 n=0は入力データの終了を表し、処理しない.
しゅつりょく
各試験例について、n年目の雌牛の数を出力した.出力ごとに1行を占めます.
サンプル入力
サンプル出力
【式】:この問題には、Fibonacci数列【繰返し】:s(n-1)+s(n-2);
C言語ソースプログラムは以下の通りである.
タイトルの説明
1頭の雌牛がいて、毎年年の初めに1頭の子牛を産んでいます.子牛は4年目から毎年年初にも子牛を産む.プログラミングして実現してn年目の時、何頭の雌牛がありますか?
入力
入力データは複数のテストインスタンスからなり、各テストインスタンスは1行を占め、1つの整数n(0 n=0は入力データの終了を表し、処理しない.
しゅつりょく
各試験例について、n年目の雌牛の数を出力した.出力ごとに1行を占めます.
サンプル入力
2
4
5
0
サンプル出力
2
4
6
【式】:この問題には、Fibonacci数列【繰返し】:s(n-1)+s(n-2);
C言語ソースプログラムは以下の通りである.
#include
#include
int s(int n);
int main()
{
int n;
do{
scanf("%d",&n);
if(n==1)
printf("%d
",n);
else if(s(n)==0)
exit(0);
else
printf("%d
",s(n)+1);//
}while(n!=0);
return 0;
}
int s(int n)
{
if(n==0)return 0;
if(n==1)return 1;
if(n==2)return 1;
if(n==3)return 1;
if(n>=4)return s(n-1)+s(n-2)+s(n-3);
}