华中科技大学机试 N阶楼梯上楼问题 Easy *DP和非递归打表问题

基本思想:

只需要缕清关系即可;

 

对于第i个楼梯,可以得知有两种情况:

1.i-1 和 i两部跨;

2.i一步跨;

 

所以有:

dp[i]=dp[i-1]+dp[i-2];

 

dp初始化的时候直接初始化dp[0],dp[1]即可;

 

关键点:
无;

 

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;

const int maxn = 100;
int n;

int dp[maxn];

int main() {
	while (cin >> n) {
		dp[1] = 1;
		dp[2] = 2;
		for (int i = 3; i <= n; i++) {
			dp[i] = dp[i - 1] + dp[i - 2];
		}
		cout << dp[n] << endl;
	}
}

  

posted @ 2020-04-01 11:14  暮云林凌  阅读(195)  评论(0)    收藏  举报