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]);
}
}
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]);
}
}
相关文章推荐
- YT03-递推求解课后题目-1002 超级楼梯-(6.7日-烟台大学ACM预备队解题报告)
- HDOJ 2041 超级楼梯(递推)
- hdoj 2045 LELE的RPG难题 解题报告(简单递推)
- HDOJ 2041 超级楼梯
- HUDJ 2041 超级楼梯 递推
- hdoj.2041 超级楼梯 20140731
- hdu 2041 超级楼梯(递推)
- HDU 2041 超级楼梯(递推)
- (递推入门)超级楼梯 -- HDOJ
- HDU 2041 超级楼梯(递推)
- hdoj_2041 超级楼梯
- 【暑期基础2】P HDU 2041 超级楼梯(递推)
- (HDOJ)1001——超级楼梯(递推)
- 杭电OJ(HDOJ)2041题:超级阶梯(规律递推,Fibonacci)
- HDOJ 2041 超级楼梯
- HDOJ 2041 超级楼梯
- HDOJ 2041 超级楼梯
- hdu 2041 超级楼梯(递推)
- HDU 2041--超级楼梯【递推】
- HDU:2041上楼梯问题解题报告