题目:

题1:现在要求输入一个整数n,请你输出斐波那契数列的第n项。

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

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

题4:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

思路解析:

  • 题1:从下往上计算,保存中间计算过程的结果,循环
  • 题2:跳上第n阶台阶时可以分成两种情况,(1)最后一步跳1阶,则f(n) = f(n-1); (2)最后一次跳2阶,则f(n) = f(n-2); 即f(n) = f(n-1) +f(n-2)
  • 题3:和2的思路一致,f(n) = f(n-1) +f(n-2) +f(n-3)+......+f(1)+1,解得f(n) =
  • 题4:盖满大矩阵的最后一步也可以分两种情况,(1)竖着盖,则f(n) = f(n-1); (2)横着盖,其对应的下面或上面也得横着盖,则f(n) = f(n-2);即f(n) = f(n-1) + f(n-2)

代码实现:

package jzoffer;import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;
import com.sun.xml.internal.ws.api.pipe.Fiber;public class Num10 {public static void main(String[] args) {// TODO Auto-generated method stubint n = 8;Integer result= Fib(6);Integer result2= comNum(3);System.out.println(result2);}//题1计算斐波那契数列private static Integer Fib(int n) {int[] result = {0, 1};if(n<2) {return result[n]; }//定义num1、num2、sumint fibNum1= 0;int fibNum2= 1;int sum= 0;for(int i=2; i<n; i++) {sum = fibNum1 + fibNum2;fibNum1 = fibNum2;fibNum2 = sum;}return fibNum2;}//题2青蛙跳private static Integer comNum(int n) {int[] result = {1, 2};if(n<=0) {return null;}if(n<3) {return result[n]; }//定义num1、num2、sumint fibNum1= 1;int fibNum2= 2;int sum= 0;for(int i=2; i<n; i++) {sum = fibNum1 + fibNum2;fibNum1 = fibNum2;fibNum2 = sum;}return fibNum2;}}

剑指offer——10.斐波那契数列相关推荐

  1. 循环斐波那契数列_剑指offer #10 斐波那契数列

    (递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...

  2. 【每日一题】剑指 Offer 10- I. 斐波那契数列

    剑指 Offer 10- I. 斐波那契数列

  3. 《LeetCode力扣练习》剑指 Offer 10- I. 斐波那契数列 Java

    <LeetCode力扣练习>剑指 Offer 10- I. 斐波那契数列 Java 一.资源 题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N) ...

  4. 剑指 Offer 10- I. 斐波那契数列 (从重叠子问题到备忘录到dp数组迭代解法)

    目录 题目描述 1.暴力递归法的重叠子问题 2.备忘录解法 3.dp数组迭代算法 4.滚动数组优化 5.参考链接 题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐 ...

  5. 【LeetCode】剑指 Offer 10- I. 斐波那契数列

    [LeetCode]剑指 Offer 10- I. 斐波那契数列 文章目录 [LeetCode]剑指 Offer 10- I. 斐波那契数列 一.递归 二.递归+哈希表 三.动态规划 总结 一.递归 ...

  6. 剑指offer:斐波那契数列

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n< ...

  7. 用循环实现斐波那契数列_剑指 Offer 10- I. 斐波那契数列

    剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F ...

  8. 剑指Offer #07 斐波那契数列(四种解法)| 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 题目解析 ...

  9. 《剑指offer》-- 斐波那契数列、跳台阶问题 、变态跳台阶问题、矩阵覆盖

    一.斐波那契数列: 1.题目: 现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39. 2.什么是斐波那契数列? 斐波那契数列指的是这样一个数列: 0, 1, ...

最新文章

  1. 山海树“医+药”O2O闭环 掘金8万亿市场
  2. 数据结构-单循环链表(C语言代码)
  3. JVM系列之:Contend注解和false-sharing
  4. C和汇编----字符串
  5. 线程创建-结束-回收 教程
  6. oppo5.0以上机器(亲测有效)激活Xposed框架的教程
  7. 为什么开源和企业用户是天生的盟友
  8. Flash/Flex学习笔记(34):AS3中的自定义事件
  9. CRC源码生成工具,可生成Verilog和VHDL
  10. Linux网络编程--socket
  11. Java链表-链表反转
  12. 【python + FFmpeg】对视频进行分辨率改变,(带音频)
  13. 一文看懂Android.bp和Androd.mk区别以及宏变量对应关系
  14. SpringBoot整合Shiro学习(上)
  15. 给没有软件测试经验的应届生的建议,看完让你豁然开朗!
  16. Homebrew卸载软件及其依赖包
  17. git不用每次输入用户名和密码
  18. 微信小程序毕业设计 基于微信美食介绍点评小程序系统开题报告
  19. 中国苯二亚甲基二异氰酸酯XDI市场发展格局及未来前景动向分析报告2022-2028年
  20. 百度音乐接口-——可以根据这做一个在线音乐播放器哦

热门文章

  1. 一条mysql语句判断是添加还是修改
  2. 【原创】设计模式面对面之观察者模式
  3. bootstrap-datepicker 开始时间-结束时间 thinkphp
  4. angularjs ui-router 路由简介
  5. JavaBean在jsp中的使用
  6. Linux操作Oracle(10)——plsql配置Oracle客户端方法【Oracle客户端安装、资源下载】详细教程
  7. c语言控制倒车雷达系统,倒车雷达控制系统设计
  8. 加快FineReport报表设计的几个心得体会
  9. 《量子计算机简史》--摘
  10. ad域管理与维护_详解Windows Server 2016如何搭建AD服务器(图文教程)