走楼梯

简介: 楼梯有 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;
}
相关文章
|
4月前
|
算法
【算法】贪心算法——柠檬水找零
【算法】贪心算法——柠檬水找零
|
7月前
|
算法
【贪心算法】|860.柠檬水找零
【贪心算法】|860.柠檬水找零
|
7月前
|
机器学习/深度学习 算法 C++
【动态规划】C++算法:403.青蛙过河
【动态规划】C++算法:403.青蛙过河
|
7月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
42 0
|
缓存 算法
钞票找零-贪心,动态规划算法
钞票找零-贪心,动态规划算法
125 1
31.跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
83 0