AcWing 821. 跳台阶
原题链接
困难
作者:
gugu小驼羊
,
2021-03-18 22:09:51
,
所有人可见
,
阅读 362
方法一:动态规划
很简单的思想,用数组下标表示上到第几层台阶,可以有多少种可能性
一层时:只有一次上一阶,所以为1
二层时:有 1 1 和 2 两种上法,所以为2
之后的层数,便可以采用循环的方式写出,即递归或者动态规划的思想
#include<iostream>
using namespace std;
int main(){
int a[16];
int n;
cin >> n;
a[1] = 1;
a[2] = 2;
for(int i = 3;i <= 15; i ++ ){
a[i] = a[ i - 1 ] + a[ i - 2 ];
}
cout << a[n];
return 0;
}
第二种做法:递归思想
#include<iostream>
using namespace std;
int goup(int n ){
if( n == 1) return 1;
if( n == 2) return 2;
return goup(n - 1) + goup( n - 2);
}
int main(){
int n;
cin >> n;
cout << goup(n);
return 0;
}