剑指offer——10.斐波那契数列
题目:
题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.斐波那契数列相关推荐
- 循环斐波那契数列_剑指offer #10 斐波那契数列
(递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...
- 【每日一题】剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列
- 《LeetCode力扣练习》剑指 Offer 10- I. 斐波那契数列 Java
<LeetCode力扣练习>剑指 Offer 10- I. 斐波那契数列 Java 一.资源 题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N) ...
- 剑指 Offer 10- I. 斐波那契数列 (从重叠子问题到备忘录到dp数组迭代解法)
目录 题目描述 1.暴力递归法的重叠子问题 2.备忘录解法 3.dp数组迭代算法 4.滚动数组优化 5.参考链接 题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐 ...
- 【LeetCode】剑指 Offer 10- I. 斐波那契数列
[LeetCode]剑指 Offer 10- I. 斐波那契数列 文章目录 [LeetCode]剑指 Offer 10- I. 斐波那契数列 一.递归 二.递归+哈希表 三.动态规划 总结 一.递归 ...
- 剑指offer:斐波那契数列
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n< ...
- 用循环实现斐波那契数列_剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F ...
- 剑指Offer #07 斐波那契数列(四种解法)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 题目解析 ...
- 《剑指offer》-- 斐波那契数列、跳台阶问题 、变态跳台阶问题、矩阵覆盖
一.斐波那契数列: 1.题目: 现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39. 2.什么是斐波那契数列? 斐波那契数列指的是这样一个数列: 0, 1, ...
最新文章
- 山海树“医+药”O2O闭环 掘金8万亿市场
- 数据结构-单循环链表(C语言代码)
- JVM系列之:Contend注解和false-sharing
- C和汇编----字符串
- 线程创建-结束-回收 教程
- oppo5.0以上机器(亲测有效)激活Xposed框架的教程
- 为什么开源和企业用户是天生的盟友
- Flash/Flex学习笔记(34):AS3中的自定义事件
- CRC源码生成工具,可生成Verilog和VHDL
- Linux网络编程--socket
- Java链表-链表反转
- 【python + FFmpeg】对视频进行分辨率改变,(带音频)
- 一文看懂Android.bp和Androd.mk区别以及宏变量对应关系
- SpringBoot整合Shiro学习(上)
- 给没有软件测试经验的应届生的建议,看完让你豁然开朗!
- Homebrew卸载软件及其依赖包
- git不用每次输入用户名和密码
- 微信小程序毕业设计 基于微信美食介绍点评小程序系统开题报告
- 中国苯二亚甲基二异氰酸酯XDI市场发展格局及未来前景动向分析报告2022-2028年
- 百度音乐接口-——可以根据这做一个在线音乐播放器哦
热门文章
- 一条mysql语句判断是添加还是修改
- 【原创】设计模式面对面之观察者模式
- bootstrap-datepicker 开始时间-结束时间 thinkphp
- angularjs ui-router 路由简介
- JavaBean在jsp中的使用
- Linux操作Oracle(10)——plsql配置Oracle客户端方法【Oracle客户端安装、资源下载】详细教程
- c语言控制倒车雷达系统,倒车雷达控制系统设计
- 加快FineReport报表设计的几个心得体会
- 《量子计算机简史》--摘
- ad域管理与维护_详解Windows Server 2016如何搭建AD服务器(图文教程)