信息學奧賽一本通(C++)1190:上臺階

1190:上臺階


時間限制: 1000 ms         內存限制: 65536 KB
提交數: 17719     通過數: 4957

【題目描述】

樓梯有n(71>n>0)階臺階,上樓時可以一步上1階,也可以一步上2階,也可以一步上3階,編程計算共有多少種不同的走法。

【輸入】

輸入的每一行包括一組測試數據,即爲臺階數n。最後一行爲0,表示測試結束。

【輸出】

每一行輸出對應一行輸入的結果,即爲走法的數目。

【輸入樣例】

1
2
3
4
0

【輸出樣例】

1
2
4
7

【解法】

//http://ybt.ssoier.cn:8088/problem_show.php?pid=1190
#include <iostream> 
using namespace std;

const int N=73; //要用long long  
long long c[N+1]={0}; //count

long long countN(int n)
{
	c[0]=c[1]=1,c[2]=2;
	for(int i=3;i<=N;i++)
	{
		c[i]=c[i-1]+c[i-2]+c[i-3];
	}
	return c[n];	
}

int main()
{
	int n;
	
	countN(N); 
	while(cin>>n && n>0 && n<=N)
	{
		cout<<c[n]<<endl;
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章