HDU 2018雌牛の物語

6835 ワード

Problem Description


1頭の雌牛がいて、毎年年の初めに1頭の子牛を産んでいます.子牛は4年目から毎年年初にも子牛を産む.プログラミングして実現してn年目の時、何頭の雌牛がありますか?

Input


入力データは複数のテストインスタンスからなり、各テストインスタンスは1行を占め、1つの整数n(0 n=0は入力データの終了を表し、処理しない.

Output


各試験例について、n年目の雌牛の数を出力した.出力ごとに1行を占めます.

Sample Input


2 4 5 0

Sample Output


2 4 6

ぶんせき


タイトルの既知に基づいて、表をリストします.
n年目
成年牛
幼牛1
幼牛2
幼牛3
合計
1
1
1
2
1
1
2
3
1
1
1
3
4
1
1
1
1
4
5
2
2
1
1
6
6
3
3
2
1
9
7
4
4
3
2
13
8
6
6
4
3
19
9
9
9
6
4
28






表を見て、フィボナッチの数列を連想すると、次の式が得られます.
fn = fn-1 + fn-3

問題解

// 1
#include
using namespace std;
int main() 
{	
	int n;
	while(cin>>n&&n!=0)
	{
		int a[56];
		a[0] = 1;a[1] = 2;a[2] = 3;a[3] = 4;
		for(int i=4;i<56;i++)
			a[i] = a[i-1] + a[i-3];	
		cout << a[n-1] << endl;	
	} 
 	return 0;
}
// 2— 
#include 
using namespace std;
int fun(int n)
{
	if(n<5) return n;
	else return fun(n-1)+fun(n-3);
}
int main() 
{	
	int n;
	while(cin>>n&&n!=0)
	{
		cout << fun(n) << endl;
	} 
 	return 0;
}