斐波那契数:比较简单,但是重点是讲效率的求解出来
简单的使用两个临时变量大大减少了重复计算

对于非常大的数如果使用long 来表示,那么 第100项左右就会发生溢出
换了BigInteger,理论上是可以表示任意大的数
http://blog.csdn.net/w00w12l/article/details/7290750

public class _Q09 {public BigInteger Fibonacci(int n){BigInteger fibOne = BigInteger.ZERO;BigInteger fibTwo = BigInteger.ONE;if(n == 0) return fibOne; if(n == 1) return fibTwo;BigInteger fibN = BigInteger.ZERO;for(int i=2; i<=n; i++){ // 直接按公式从2到nfibN = fibOne.add(fibTwo);fibOne = fibTwo;fibTwo = fibN;}return fibN;}}

测试代码:

public class _Q09Test extends TestCase {_Q09 fib = new _Q09();public void testMinInReverse() throws Exception{BigInteger result = fib.Fibonacci(5000);System.out.println(result);}}

【剑指offer-Java版】09斐波那契数列相关推荐

  1. 剑指Offer - 面试题10- I. 斐波那契数列

    文章目录 1. 题目 2. DP解题 3. 面试题 08.01. 三步问题 4. LeetCode 509. 斐波那契数 1. 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 ...

  2. python剑指offer面试题_剑指offer面试题Q10 斐波那契数列 python解法

    Q10.斐波那契数列 题目描述 写一个函数,输入n,求斐波那契数列的第n项. 解题思路 思路一 递归 递归很简单但是并不能AC python实现代码 class Solution: def Fibon ...

  3. 剑指offer(7)斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 题目分析 我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这 ...

  4. 剑指offer面试题10- I. 斐波那契数列

    题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: 思路 详见链接 代码 class Solution:def fib(self,n:int) ...

  5. 剑指offer Leetcode 10 I .斐波那契数列

    解法1:效率低的解法 复杂度 速度十分缓慢,重复计算太多 代码 //未考虑溢出和取模 class Solution {public:int fib(int n) {if(n <= 0)retur ...

  6. 剑指offer面试题[9]-裴波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 分析: 虽然在学递归函数时,会用斐波那契数列作为例子,但这并不能说明递归的解法最合适这个题目 ...

  7. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  8. 【Java系列】斐波拉契数列

    介绍 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&q ...

  9. Java实现递归 斐波那契数列 阶乘

    Java实现递归 斐波那契数列 阶乘 阶乘 /*** 使用递归算法求阶乘* 求阶乘 * 5!=5*4*3*2*1; * * 1=1;* 2!=2*1!;* 3! = 3*2!;* 4! = 4*3!; ...

  10. 事无巨细说Java之---Java 程序 | Java 编程实例--1)Java中的斐波那契数列--Fibonacci series

    在斐波那契数列中,下一个数是前两个数的和,例如 0.1.1.2.3.5.8.13.21.34.55 等.斐波那契数列的前两个数是 0 和 1. java中写斐波那契数列程序有两种方式: 不使用递归的斐 ...

最新文章

  1. 关于部署osd过程中:Device is in use by a device-mapper mapping问题解决
  2. 人脸识别损失函数笔记
  3. python的业务场景_python| Binlog务应用场景
  4. xms跨平台基础框架 - 基于.netcore
  5. Django的model查询操作 与 查询性能优化
  6. 深入浅出理解HOG特征---梯度方向直方图
  7. java——Runtime
  8. 微信小程序 - 展开收缩列表
  9. 转: jvm调优参数总结
  10. 限时抢购促销海报设计没想法,看这里!眼见的倒计时紧迫感
  11. RedHat Linux和Cent Linux日常运维之安全加固详细篇
  12. 一个类的类类型是Class类的实例,即类的字节码
  13. Windows安装apache+php的nts版本
  14. Bearcat pomelo game 实战 -- treasures
  15. 非标机械设计老工程师的经验总结,还不赶紧收藏
  16. 组策略 计算机配置 安全设置,使用组策略配置 Windows 防火墙设置
  17. 建立stm32工程模板及Keil设置(二)
  18. Hopping Rabbit---牛客
  19. android dialog设置背景图片,如何为Dialog设置背景图片?
  20. python规范化货币_Python货币资金科目分析

热门文章

  1. 阿拉德之怒显示服务器错误,阿拉德之怒网络异常怎么办 安装失败怎么办
  2. div搜索框与按钮不在一行_前阿里巴巴运营专家:搜索框的5大运营玩法
  3. 记录一个超分辨率算法项目,来自B站
  4. 获取图像的梯度,方向和方向梯度图像
  5. 基于 Express 与 Mongodb 的简易 实现一个多人 blog
  6. 磁盘格式化、磁盘挂载、手动增加swap空间
  7. ECJia如何配置两个网站访问共同的数据库和附件资源
  8. CentOS 7最小安装之后应该尽快做好的几件事情
  9. 进制转换与ascll码利用
  10. 2.SDL游戏开发:把代码写长一点(一)