- dp数组的定义和下标
- 递推公式
- dp数组如何初始化,初始化也需要注意
- 遍历顺序
- 打印dp数组(出现问题
对于高度为 n 的台阶,从下往上走,每一步的阶数为 1,2,3 中的一个。问要走到顶部一共有多少种走法
分析:
(1)dp[i]:达到i阶楼梯有dp[i]种方法
(2)dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
(3)dp[1]=1;dp[2]=2;dp[3]=4;
(4)此题应为正序遍历
#include <iostream>
using namespace std;int main()
{//第一个阶梯一种走法//第二个阶梯2种走法//第三个阶梯4种走法int dp[36]={0,1,2,4};//我们将第一个台阶走法存入dp[1]int n;cin>>n;for(int i=4;i<=n;i++){//从第四个阶梯开始dp[i]=dp[i-1]+dp[i-2]+dp[i-3];}cout<<dp[n];return 0;
}