[题解] 《算法零基础100讲》(第28讲) 递推问题——题5(C语言)(超简单易懂)

零、欸嘿!

英雄哪里出来《算法零基础100讲》传送门

https://bbs.csdn.net/forums/hero?category=0&typeId=17913https://bbs.csdn.net/forums/hero?category=0&typeId=17913

一、题目

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶 

力扣https://leetcode-cn.com/problems/climbing-stairs/

 二、解题 

思路:递推,到n层只能是从n-2层或n-1层去的,所以到n-1和到n-2的方法的和就是到n层的方法数,即:2层=0层+1层;3层=1层+2层;4层=2层+3层的方法数

int climbStairs(int n){  //要到的层数
    int i=1,j=1,k=1; //  到0层1种方法,到1层1种方法,当n==1时进不去循环这里直接赋值1
    for(int m=2;m<=n;m++){
        k=i+j;   //  到3层方法数等于到2层方法数加到1层的方法数;以此类推
        i=j;   //  i往上加一层
        j=k;   //   j往上加一层
    }
    return k;  //返回k值

}

三、结果

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空白-checkmate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值