#include<stdio.h>
int main()
{
int s[45];
int m,n;
int i;
s[1]=0;
s[2]=1;
s[3]=2;
for(i=4;i<=40;i++)
s[i]=s[i-1]+s[i-2];
scanf("%d",&m);
while(m--){
scanf("%d",&n);
printf("%d\n",s[n]);
}
return 0;
}
\\有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?(1<=m<=40)
解题思路:
1递推题罗。f(1)=0,f(2)=1,f(3)=2;
2当要走向n级的时候,有两种情况:(1)先走向(n-1)级,有f(n-1)种情况,再一次走一级,只有一种选择;
(2)先走向(n-2)级,有f(n-2)种情况,再一次走二级,只有一种选择;
所以f(n)=f(n-1)+f(n-2); n>=4
HDU2041楼梯找规律水题
最新推荐文章于 2020-03-29 12:24:17 发布
本文介绍了一种通过递推算法解决楼梯走法计数问题的方法。具体地,使用了一个整型数组s来存储从第1级到第n级的不同走法数量,其中s[1]=0, s[2]=1, s[3]=2。对于任意第n级台阶,走法数量等于到达(n-1)级和(n-2)级走法数量之和。
摘要由CSDN通过智能技术生成