您的位置:首页 > 其它

hdoj 2041超级楼梯 解题报告(递推题)

2011-01-25 20:29 309 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2041

Problem Description
有一楼梯共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
#include <stdio.h>
int main()
{
int i,j,n,k,a[50];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&k);
a[1]=0;
a[2]=1;
a[3]=2;
for(j=4;j<=k;j++)
a[j]=a[j-1]+a[j-2];
printf("%d/n",a[k]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: