爬楼梯算法

来源:互联网 发布:什么自拍软件最好 编辑:程序博客网 时间:2024/05/22 14:15

详细原理这里不细讲了,直接上代码实现。

1.若最大每次上楼梯2层,则:

#include <iostream>  using namespace std;  int dp[10001] = {0};  int main(){      int num;      cin>>num;      dp[1] = 1;      dp[2] = 2;      for(int i = 3; i <= num; i++){          dp[i] = dp[i-1] + dp[i-2];      }      cout<<dp[num]<<endl;      return 0;  }  

2.若最大每次上3层,就将上面的改为:

#include <iostream>  using namespace std;  int dp[ 10001 ] = { 0 };  int main()  {      int num;      cin >> num;      dp[ 1 ] = 1;      dp[ 2 ] = 2;      dp[ 3 ] = 4;      for(int i = 4; i <= num; i++){          dp[ i ] = dp[ i - 1 ]+ dp[ i - 2 ] + dp[ i - 3 ];      }      cout<< dp[ num ] <<endl;      return 0;  }