【GZOJ】1369——小明跳楼梯

原创 2015年11月17日 21:31:49

题目链接广大OJ1369
本题亦为广大15级第一次周赛的B题。

题目内容

Problem Description
小明很喜欢跳楼梯。
他可以一次跳一阶楼梯(记为1),也可以一次跳两个台阶(记为2)。
那么问题来了。小明跳三个台阶共有几种方法?
答案很简单,一共三种。
分别是:111,12,21。
换成语言描述就是:连跳三阶楼梯,跳一阶后再一次跳两个台阶,一次跳两个台阶后再跳一阶,共三种。
以此类推,小明跳四个台阶就一共有五种,分别是:1111,112,121,211,22。
那么问题来了。小明跳n阶台阶共有几种方法?

Input
有多组输入数据。

每组数据共一行,为一个整数n(1<=n<=70)

Output
对于每组输入数据,输出一个整数m,m为小明跳n阶楼梯的方法数。
Sample Input
1
2
4
Sample Output
1
2
5
Hint
于是小明就孤独一生了。

可喜可贺可喜可贺。

解题思路

本题有两种方法:

1.观察规律。小明跳一阶楼梯有1种方法,跳两阶楼梯有2种方法,跳三阶楼梯有3种方法,跳四阶楼梯有5种方法,依次类推,接下去的方法数为8,13,21,34,。。。。。。。
不难发现这是一个斐波那契数列,于是就可以直接按求斐波那契数列的公式来算。

2.求递推公式。利用状态转移的思想。假设小明跳n阶楼梯会有F[n]种方法,那么小明跳这n阶楼梯的所有方法可以分为两类:
一,最后一步为跳一阶的方法
二,最后一步为跳两阶的方法
最后一步为跳一阶的方法除去最后一步就是跳n-1阶楼梯的方法数,最后一步为跳两阶的方法除去最后一步就是跳n-2阶楼梯的方法数。
所以便可以得到如下递推式:
F[n]=F[n-1]+F[n-2]
然后把特殊情况列出来(因为上式对n=1和n=2的情况不适用),于是就可以在算这道式子之前先初始化F[1]为1,F[2]为2。(当然也可以初始化F[0]=1,F[1]=1)
最后你会发现,这个推出来就是斐波那契数列的递推式。

代码

#include<cstdio> 
int n;
long long a[80];
int main()
{
    a[1]=1;
    a[2]=2;
    for(int i=3;i<=70;i++)
        a[i]=a[i-1]+a[i-2];
    while(scanf("%d",&n)==1)
        printf("%lld\n",a[n]);
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

1331 小明上楼梯 II

描述 小明每次回家都要上n级楼梯。有时小明一次上1级楼梯,有时一次上2级楼梯。现在小明每次随机走1级或2级楼梯,请问它若恰好上到第n级楼梯时,次数的期望值。(如果在第n-1的位置要上2级楼梯,则整...

再见“小明爬楼梯”问题

在c语言期末考试中,再次见到了“小明爬楼梯”问题,而第一次见到是在某次面试题中,由于当时还没有学到递归部分,因此就仅仅把代码看了一下,然而其中包含的思想却没有弄清楚,因此在考试时见到该题一头雾水,因此...

【GZOJ】1308——开灯关灯

题目链接:广大OJ1308 本题亦为广大15级第一次周赛的H题。题目内容Problem Description 有一个3*3的九宫格,每个格子上有一盏亮着的灯1 2 34 5 67 8 9当按动某...

【GZOJ】1373——凹酱的行程

题目链接:广大OJ1373 本题亦为广大15级第一次周赛的C题。题目内容Problem Description 悠木碧(以下通称凹酱,昵称来源请百度)是一位活跃在声优界的女性声优,同时也作为偶像活...

【GZOJ】1368——爱迪生的烦恼

广大15级第一次周赛E题

【GZOJ】1374——口袋妖怪对战

题目链接:广大OJ1374 本题亦为广大15级第一次周赛的I题。题目内容Problem Description 一年一度的口袋妖怪大赛开始了!!!现在是四天王之一的渡对战传说中的训练师帽子!!!渡...

hdu 4501 小明系列故事——买年货(三维背包)

小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To...
  • acm_cxq
  • acm_cxq
  • 2016年06月17日 20:02
  • 220

懒省事的小明 (果子合并)——哈夫曼树

建立哈夫曼树,计算树的带权路径。 #include #include #include using namespace std; typedef struct HTNode { int wei...

HDU4501-小明系列故事——买年货

小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To...

hdu 4527 小明系列故事——玩转十滴水 bfs 解题报告

小明系列故事——玩转十滴水 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【GZOJ】1369——小明跳楼梯
举报原因:
原因补充:

(最多只允许输入30个字)