cpp
/**
* @author Limg
* @date 2023/08/11
* 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
* 每次你可以爬 1 或 2 个台阶。
* 你有多少种不同的方法可以爬到楼顶呢?
*/
#include<iostream>
using namespace std;
int climbStairs(int n);
int main()
{
int n=0;
cin>>n;
cout<<climbStairs(n)<<endl;
return 0;
}
//解题函数
int climbStairs(int n)
{
if(n==1)
{
return 1;
}
else if(n==2)
{
return 2;
}
else{
int num[n];
num[0] = 1;
num[1] = 2;
for(int i=2;i<n;i++)
{
//从i-1走一阶台阶 + 从i-2从二阶台阶
num[i] = (num[i-1])+(num[i-2]);
}
return num[n-1];
}
}