N階樓梯問題(動態規劃)

題目描述

N階樓梯上樓問題:一次可以走兩階或一階,問有多少種上樓方式。(要求採用非遞歸)

輸入描述:

輸入包括一個整數N,(1<=N<90)。

輸出描述:

可能有多組測試數據,對於每組數據,
輸出當樓梯階數是N時的上樓方式個數。

示例1

輸入

複製

4

輸出

複製

5

這道題採用動態規劃算法,考慮n階臺階最後一次,走一步的話,前面就是m[n-1]種走法,走兩步的話,前面就是m[n-2]種走法。

公式就是m[n]=m[n-1]+m[n-2]。

#include <iostream>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		long long m[92];
		m[1]=1;
		m[2]=2;
		for(int i=3;i<=n;i++){
			m[i]=m[i-1]+m[i-2];
		}
		cout<<m[n]<<endl;
	}
	return 0;
}

 

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