走楼梯

简介: 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。

走楼梯

题目描述

楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。

输入描述

一个数字,楼梯数。

输出描述

输出走的方式总数。

样例输入 1

4

样例输出 1

5

代码

递归

#include<stdio.h>

int step(int n){
    if(n == 1 || n == 2){
        return n;
    }else{
        return step(n-1) + step(n-2);
    }
}

int main(){
    int n;
    scanf("%d",&n);
    printf("%d",step(n));
    return 0;
}

这题没多少印象,但是印象里递归好像有测试点过不去,会超时,再补一个动态规划的题解。

动态规划

#include<stdio.h>


int main(){
    int n;
    scanf("%d",&n);
    int res[n+1];
    res[0] = 0;
    res[1] = 1;
    res[2] = 2;
    if(n<=3)
    {
        printf("%d",n);
        return 0;
    }
    for(int i=3;i<=n;i++)
    {
        res[i]=res[i-1]+res[i-2];
    }
    printf("%d",res[n]);
    return 0;
}
相关文章
|
5月前
|
算法
AcWing 1343. 挤牛奶(每日一题)
AcWing 1343. 挤牛奶(每日一题)
|
5月前
acwing 1106 山峰和山谷
acwing 1106 山峰和山谷
28 0
|
10月前
|
C语言
【圣诞树】
【圣诞树】
60 0
|
10月前
|
机器学习/深度学习 算法 C++
【动态规划】C++算法:403.青蛙过河
【动态规划】C++算法:403.青蛙过河
|
机器学习/深度学习 Java
AcWing——砝码称重
AcWing——砝码称重
105 0
|
前端开发
2、CSS动画之行走的米兔、奔跑的小人
2、CSS动画之行走的米兔、奔跑的小人
306 0
A2234 结果填空:青蛙爬井
A2234 结果填空:青蛙爬井
716 0
A2234 结果填空:青蛙爬井
喜水青蛙
总是喜欢在水里嬉戏的青蛙,某天要过河拜访一位朋友。 已知河道中长满了带刺的不知名生物,能通过的路只有一条直线,长度为L。 直线上随机分布着m块石头。青蛙的最小跳跃距离是s,最大跳跃距离是t。 青蛙想要尽可能的少踩石头,那么它通过河道最少会踩到多少石头?
|
算法
手撕一道算法题 在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯();当N=9时呢?
手撕一道算法题 在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯();当N=9时呢?
340 0