2019-05-15

题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2041

题目要求:

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?


image.png

做题思路:

刚开始没有做草稿,坐在那看着电脑空想,怎么也想不到思路,后来动手列了几个情况才找到规律。
按照楼梯一级一级找规律,
f(1) = 0
f(2) = 1
f(3) = 2
f(4) = 3
f(5) = 5
很快可以看到规律,就是从第三阶楼梯之后,
都有f(n) = f(n-1)+f(n-2),斐波那契数列;
通过递推法就可以求到后面的数了

代码:

#include "stdio.h"

int a(int m) {
    if(m == 2 || m == 3)
        return m-1;
    else
        return a(m-1)+a(m-2);
}

int main() {
    int n,m,count=0;
    scanf("%d",&n);
    while (n-- > 0) {
        scanf("%d",&m);
        printf("%d\n",a(m));
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容