首页 > 其他 > 详细

爬楼问题

时间:2020-10-12 23:47:18      阅读:68      评论:0      收藏:0      [点我收藏+]

爬楼问题

题目描述:

在计算机学院有一个长腿君,他在爬楼梯的时候从来都是要么上 2 个台阶,要么上 3 个台阶。由于爬楼梯实在太无聊了,长腿君就开始尝试每天采用不同的方式上楼梯。如果长腿君回家需要爬 N 阶台阶,你能告诉长腿君,他爬楼梯回家有多少种不同的方式吗?

请注意,长腿君“先爬 3 个台阶后爬 2 个台阶”和“先爬 2 个台阶后爬 3 个台阶”是两种不同的回家方式。

输入格式:

每次输入一个符合描述的整数N,表示总共的台阶数(2 <= N <= 50)。

输出格式:

输出一行,输出一个整数,表示长腿君有多少种上楼的方式。最后结果保证在 int 范围内。

样例输入1:

5

样例输出1:

2

样例输入2:

40

样例输出2:

31572

 

代码:

#include <stdio.h>

int main() {
    int N;
    int step[51];
    
    scanf("%d", &N);
    
    step[0] = 0;
    step[1] = 0;
    step[2] = 1;
    step[3] = 1;
    
    int i;
    for(i=4;i<=N;i++)
    {
        // 第 i 步 可以走2个台阶和3个台阶两种走法,所以总共有 step[i-2] + step[i-3]种,然后再递归
step[i]
= step[i-2] + step[i-3]; } printf("%d", step[N]); return 0; }

 

爬楼问题

原文:https://www.cnblogs.com/xiaohzd/p/13805186.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!