1 问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法?

2 分析

我们可以定位函数f(n),n为n级别的台阶,f(n)的值是青蛙有多少种跳法,我们知道当n为1的时候,f(1) = 1;

当n为2的时候,我们知道可以先跳一级再跳一级,或者直接跳2级,这里就有2种跳法,所以f(2) = 2;

当n为3的时候,我们可以这样理解,青蛙先跳一级,后面还有n-1级需要跳,所以这里的跳法为f(n - 1);

或者青蛙先跳两级,后面还有n-2级需要跳,所以这里的跳法为f(n - 2); 所以我们知道当n大于2时,f(n) = f(n - 1) + f(n - 2);

f(1) = 1; (n = 1)
f(2) = 2; (n = 2)
f(n) = f(n - 1) + f(n - 2); (n > 2)

3 代码实现

#include <stdio.h>long long fibonacciOne(unsigned int n)
{if (n <= 0)return 0;if (n == 1)return 1;if (n == 2)return 2;return fibonacciOne(n - 1) + fibonacciOne(n - 2);
}long long fibonacciTwo(unsigned int n)
{if (n <= 0)return 0;if (n == 1)return 1;if (n == 2)return 2;long long first = 1;long long second = 2;long long sum = 0;for (int  i = 3; i <=n ; ++i){sum = first + second;first = second;second = sum;}return sum;
}int main(void)
{long long resultOne = fibonacciOne(4);long long resultTwo = fibonacciTwo(4);printf("resultOne is %lld\n", resultOne);printf("resultTwo is %lld\n", resultTwo);return 0;
}

4 运行结果

resultOne is 5
resultTwo is 5

剑指offer之青蛙跳台阶问题相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java

    <LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...

  2. 【LeetCode】剑指 Offer 10- II. 青蛙跳台阶问题

    [LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 文章目录 [LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 一.动态规划 总结 一.动态规划 class So ...

  3. 剑指 Offer 10- II. 青蛙跳台阶问题 -递归法和数学递推法

    剑指 Offer 10- II. 青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007), ...

  4. LeetCode刷题剑指 Offer 10- II. 青蛙跳台阶问题

    LeetCode刷题剑指 Offer 10- II. 青蛙跳台阶问题 动态规划的思想,青蛙每次可以跳一个或两个台阶,要想得到最终青蛙跳n阶台阶的方法数,需要找到青蛙跳n-1个台阶的方法数和跳n-2个台 ...

  5. 剑指Offer 10- II—青蛙跳台阶问题

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  6. 【剑指 Offer 46. 把数字翻译成字符串】【剑指 Offer 10- II. 青蛙跳台阶问题】【198. 打家劫舍】【动态规划】

    青蛙跳台阶,打家劫舍,字母相同编码三道题思路总结 总结我自己思路的,写的不详细,想看详细的可以跳转到我加的链接,都是力扣上同一个人写的题解,很厉害. 字符串翻译数字 字符串翻译数字 当最后一位数字单独 ...

  7. 剑指 Offer 10- I. 斐波那契数列/剑指 Offer 10- II. 青蛙跳台阶问题

    2020-07-02 1.题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少 ...

  8. 【剑指Offer】青蛙跳台阶问题

    题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. import java.util.*; public class FrogAn ...

  9. 剑指offer之青蛙跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 求解思路 刚开始是想要通过递归模拟求解,结果超时了.但是这样肯定能求出 ...

最新文章

  1. 异步发送邮件、短信、微信
  2. BZOJ 3694DTOJ 1972: 最短路
  3. docker随着主机启动 自动启动设置
  4. Java通过JDBC操作Hive
  5. day inset_按 SetPrinter API 修改打印机设置 - Application Developer | Microsoft Docs
  6. 适配器模式在Mybatis中的妙用
  7. 集群节点基于Hadoop集群的HBase集群的配置【2】
  8. HttpResponse类
  9. python网络虫营销_python与sem,大数据降低竞价推广成本利器
  10. 如何关闭MyEclipse自动更新
  11. 基于Python的SVM算法深入研究
  12. 如何查看计算机的硬盘序列号,电脑上的硬盘序列号如何查
  13. vue echarts在中国地图让某个省份凸起
  14. uni-app生成分享图片( 使用 Painter 生成分享海报)
  15. 海康IPCamera结合OpenCV图像处理的一般步骤
  16. (四十二):Aligning Linguistic Words and Visual Semantic Units for Image Captioning
  17. 如何成为一名优秀的企业管理者
  18. OpenCV函数库查询手册(python)
  19. 简单易用的公司网页模板,助您快速建站
  20. 小散量化炒股记|股价如波浪起伏,教你用量化识别波段的极值点

热门文章

  1. .NET 大会今日开幕 |这些白嫖福利不看肠子都悔青
  2. C# 外接(网口)双摄像头视频获取
  3. 不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!
  4. IdentityServer4系列 | 常见术语说明
  5. 台湾RD技术谈|嘉宾郭家齊董大偉黃保翕
  6. 使用ImpromptuInterface反射方便的创建自定义DfaGraphWriter
  7. .NET Core开发实战(第30课:领域事件:提升业务内聚,实现模块解耦)--学习笔记...
  8. .NET Core开发实战(第28课:工作单元模式(UnitOfWork):管理好你的事务)--学习笔记...
  9. 【在路上2】快递的运单轨迹
  10. 基于 Kubernetes 的 CICD 基础设施即代码