一、题目编号:
1010
二、简单题意:
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
1010
二、简单题意:
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
三、解题思路形成过程
由于每次只能向上跨一级或两级,所以要走到第i级有两种情况,从第i-1级跨一级上去或者第i-2级跨两级上去。所以走到第i级的方法等于走到第i-1级的方法加上走到第i-2级的方法。即v[i]=v[i-1]+v[i-2]。
由于每次只能向上跨一级或两级,所以要走到第i级有两种情况,从第i-1级跨一级上去或者第i-2级跨两级上去。所以走到第i级的方法等于走到第i-1级的方法加上走到第i-2级的方法。即v[i]=v[i-1]+v[i-2]。
四、感想
依旧是递推,很简单。
依旧是递推,很简单。
五、AC代码
#include<iostream>
using namespace std;
int main()
{
long long v[41];
v[2]=1;v[3]=2;
for(int i=4;i<41;i++)
{
v[i]=v[i-1]+v[i-2];
}
int n,m;
cin>>n;
while(n--)
{
cin>>m;
cout<<v[m]<<endl;
}
return 0;
}
using namespace std;
int main()
{
long long v[41];
v[2]=1;v[3]=2;
for(int i=4;i<41;i++)
{
v[i]=v[i-1]+v[i-2];
}
int n,m;
cin>>n;
while(n--)
{
cin>>m;
cout<<v[m]<<endl;
}
return 0;
}
本文探讨了一道经典的算法问题——如何计算爬上M级楼梯的不同方法数量。通过使用递推算法,文章给出了简洁高效的解决方案,并提供了完整的代码实现。
767

被折叠的 条评论
为什么被折叠?



