菲波那切数列几种实现

  • 递归
  • for循环
  • while循环
  • 特征方程

个人一点愚见,有问题还望指出勿喷
特征方程是看过大佬们的结果才知道的,还特意去学习了被忘掉的特征方程.

递归

 /*** 递归计算* 时间复杂度O(n^2)* 如果n比较大时会导致假死,因为递归计算太费时间,每次计算次数大致可以参考2的n次方* @param n 位置* @return int*/private static int fibRecursion(int n) {if (n < NUM) {return n;}return fibRecursion(n - 1) + fibRecursion(n - 2);}

for循环

 /*** for循环计算* 时间复杂度O(n)** @param n 位置* @return int*/private static int fibLoop(int n) {if (n < NUM) {return n;}int first = 0;int second = 1;for (int i = 0; i < n - 1; i++) {int temp = first + second;first = second;second = temp ;}return second;}

while循环

/*** 循环计算* 时间复杂度O(n)** @param n 位置* @return int*/private static int fibWileLoop(int n) {if (n < NUM) {return n;}int first = 0;int second = 1;while (n-- > 1) {second += first;first = second - first;}return second;}

特征方程

/*** 特征方程* 时间复杂度O(1)* 自测时丢失精度* @param n 位置* @return int*/private static int fibMath(int n) {double c = Math.sqrt(5);return (int) (((Math.pow((1 + c) / 2, n) - Math.pow((1 - c) / 2, n)) / c));}

菲波那切数列几种实现相关推荐

  1. 求菲波那切数列数列第n项三种方法小结

    菲波那切数列数列的应用场景还是比较多的,比如可以在考试的时候考你递归啊,早上碰到的一道题就是这样,骄傲地写下递归方程,结果TLE了,然后旁边的大神给我说了一个叫滚动数组的东西...题目是这样的You ...

  2. 阶乘 c语言 fushu,JS递归实现阶乘和菲波那切数列

    当我们需要使用递归来完成某些操作的时候,我们先要了解什么是递归 什么是递归? 递归,就是在运行的过程中调用自己. 一般来说,递归需要有边界条件.递归前进段和递归返回段. 当边界条件不满足时,递归前进: ...

  3. php菲波那切数列,php实现菲波那切数列和杨辉三角

    1.递归  显示斐波那契数列 function recursion($num){ //判断是否小于0 if($num<0){ return -1; } if($num==1){ return 0 ...

  4. Python多种方法生成菲波那切数列

    文章目录 一.顺序输出 二.利用递归函数实现 三.循环 四.利用列表实现 五.利用reduce实现 六.利用生成器实现 七.利用魔术方法实现 记录多种方法生成菲波那切数列 一.顺序输出 代码如下: # ...

  5. 数楼梯--高精度递推、菲波那切数列

    题目描述 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入格式 一个数字,楼梯数. 输出格式 输出走的方式总数. 输入样例 4 输出样例 5 说明/ ...

  6. python函数-返回菲波那切数列for,range,append

    #返回菲波那切数列的列表 def fibs(num):     fibs=[0,1]     for i in range(num):         fibs.append(fibs[-2]+fib ...

  7. 计算菲波那切数列前50项

    计算菲波那切数列 前50项 public class Main {public static void main(String[] args) {// temp 1 表示第一个数 temp 2 表示第 ...

  8. 008 -菲波那切数列

    对第n位菲波那切数列的值进行求解 菲波那切数列 (1)递归方法实现 //递归实现斐波那契数列public static int calculateOne(int num) {if(num==0)ret ...

  9. 菲波那切数列 java_兔子的繁殖问题即菲波那切数列 java实现

    问题:兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来.初始有一对小兔子,假设所有兔子都不死,那么一年以后可以繁殖多少对兔子?思路: 每月的兔子总数:1.1.2.3.5.8.13.- ...

最新文章

  1. 选择问题 and 字谜游戏问题
  2. python软件开发的一般流程-Python各个岗位的开发流程
  3. Python中断多重循环的两种思路
  4. 用于文档上下文感知推荐的卷积矩阵分解
  5. Qt工作笔记-右键删除视图中的Item【坐标映射】
  6. [新手学Java]使用beanUtils控制javabean
  7. Sql语句常用关键字
  8. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_牟宇航:百度OLAP数据库——Palo...
  9. 开源巨献:Google最热门60款开源项目
  10. 沙箱环境和测试环境区别_带你一图了解iOS应用内购买流程,掌握测试环境搭建与测试方法...
  11. Win8.1系统System.exe进程占用磁盘率高达100%如何解决
  12. (Linux)mongodb启用安全认证登录
  13. vnc-4.0-winsrc版本之winvnc工程分析_源码研究
  14. 著名数学家龚升的论述揭示高中“函数近代严格定义” 有非常明显错误
  15. 使用 i18n 时踩的坑
  16. Android 学习之《第一行代码》第6章:adb调试:pemission denied以及模拟器不能获取root权限问题的解决
  17. 2020 CCPC 秦皇岛 K. Kingdom‘s Power(树形DP)
  18. 【SysML精粹】模块定义图
  19. 和joomla模板开发死磕(1)
  20. JAVA捕获异常小结

热门文章

  1. 工业可编程控制器PLC的编程是什么?
  2. Linux下JsonCpp的使用教程
  3. 07.设计模式之Observer观察者模式
  4. 写在受洗之前:我为什么成为基督徒
  5. 1332:【例2-1】周末舞会
  6. 陨石VR体验馆落户北京 碧鬼REAL论坛带来真知识分享
  7. python 字典元素替换_Python字典替换值
  8. 让人惊叹的经典网络营销案例!
  9. soap和wsdl的理解
  10. img图片不显示时设置默认图片