/**
*输入一个整数n(1<=n<90)
*每次可以上一个或者两个台阶
*输出有多少种上楼的方式
*注:要求使用非递归的方式求解
*想法,定义一个数组用于存放上楼方式的数量,数组的下标值是台阶的数量
*当前的台阶的数量是前一个和前前一个的数量总和
*这个也符合动态规划的思想,先进行一些小的直接能看出来的进行赋值,之后
*在基础上进行求解
*程序注意点,边界值定义的数据类型是否符合条件
*程序的要求是否是一直的循环操作
*/
#include "iostream"
using namespace std;
int main()
{
//这里的数据类型需要注意
long long a[91] = {0};//一定要对数组进行初始化
int n = 0;
a[0] = 0;
a[1] = 1;
a[2] = 2;
for(int i = 3;i<=90;i++)
{
a[i] = a[i-1] + a[i-2];
}
while(cin>>n)
cout<<a[n];
return 0;
}
动态规划N阶楼梯上楼问题
最新推荐文章于 2022-12-24 20:16:05 发布