斐波那契数列:指的是这样的数列:0,1,1,2,3,5,8,21,34..., 这个数列从第三项开始,每一项都等于前两项之和。

案例代码:

/*** 递归求解斐波那契数列* 步骤解释:* n=5 foo(4)+foo(3)* =foo(3)+foo(2)+foo(2)+1* =3foo(2) +1+1* =3+2* =5** @param n* @return*/
private static Integer foo(int n) {if (n < 2)return n;return foo(n - 1) + foo(n - 2);
}

 循环、递归代码实现斐波那契数列

package top.chenxiky.courseware.sort;/*** Created with IntelliJ IDEA.** @Author: chenxiky* @Date: 2022/03/11/13:28* @Description: 斐波那契数列* 斐波那契数列:指的是这样的数列:0,1,1,2,3,5,8,21,34...,* 这个数列从第三项开始,每一项都等于前两项之和*/
public class FibonacciLoop {public static void main(String[] args) {// 笔试题System.out.println("答案:" + foo(5));// 循环实现斐波那契数列fibonacci_loop(5);// 打印空行System.out.println();// 递归实现斐波那契数列fibonacci_recursion(1);}/*** 递归求解斐波那契数列* 步骤解释:* n=5 foo(4)+foo(3)* =foo(3)+foo(2)+foo(2)+1* =3foo(2) +1+1* =3+2* =5** @param n* @return*/private static Integer foo(int n) {if (n < 2)return n;return foo(n - 1) + foo(n - 2);}/*** 用循环实现斐波那契数列** @return*/public static void fibonacci_loop(int num) {// num如果小于1直接结束该方法if (num < 1) {return;}// 设置一个变量输出数据的个数int n = 0;// 初始化第一个数int a = 0;// 初始化第二个数int b = 1;// 第三个数 斐波那契数列第一项等于前两项之和(初始化为0)int c = 0;// do while至少循环一次do {n++;if (n == 1) {System.out.print("循环实现:" + 0 + "\t");System.out.print(1 + "\t");}// 第三个数是前两个数之和c = a + b;System.out.print(c + "\t");// 原来的第一个数变为第二个数a = b;// 原来的第二个数变为第三个数b = c;} while (n < num);return;}/*** 递归实现斐波那契数列** @param num*/public static void fibonacci_recursion(int num) {// 边界值判断if (num < 1) {return;}// 调用递归方法fibonacci_recursion_handler(1, num, 0, 1);}/*** 在私有的方法里递归调用** @param index // 数据的序号* @param num   //  数列数据的个数* @param one   //   第一个数* @param two   //    第二个数*/private static void fibonacci_recursion_handler(int index, int num, int one, int two) {// 程序的出口if (index <= num) {if (index == 1) {System.out.print("递归实现:" + one + "\t");System.out.print(two + "\t");}// 第三个数是前两个数之和System.out.print(one + two + "\t");// 递归 原来的第一个数变成第er个数 原来的第二个数变成第三个数fibonacci_recursion_handler(++index, num, two, one + two);}//        // 程序的出口
//        if (index > num) {
//            // 终止递归
//            return;
//        } else {
//            if (index == 1) {
//                System.out.println(0);
//                System.out.println(1);
//            }
//            // 第三个数是前两个数之和
//            System.out.println(one + two);
//            // 原来的第一个数变成第er个数 原来的第二个数变成第三个数
//            fibonacci_recursion_handler(++index, num, two, one + two);
//        }}}

斐波那契数列——java实现相关推荐

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

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

  2. 兔子繁殖问题 斐波那契数列 java实现

    兔子繁殖问题 斐波那契数列 java实现 问题描述 一对兔子,从出生后第3个月起每个月都生一对兔子. 小兔子长到第3个月开始每个月又生一对兔子. 假如兔子都不死, 请问第1个月出生的一对兔子,第n个月 ...

  3. 斐波拉契数列 Java三种实现

    对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...

  4. 斐波拉契数列 java实现

    指的是这样一个数列: 1 1 2 3 5 8 13 21 34 ... F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 也称黄金分割数列,兔子数列 通项 ...

  5. 斐波那契数java实现_斐波那契数列Java实现[剑指offer]

    描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 题解 1.递归实现 采用递归的方式进行实现时,从第n个节点向下递归时,存 ...

  6. 最长斐波那契数列java实现

    class Solution {public int lenLongestFibSubseq(int[] arr) {//建立一个二维数组来存储每一个以i为结尾元素,j为倒数第二个元素的斐波那契数列的 ...

  7. 递推法:斐波那契数列java

    在不使用递归和公式法的情况下,求斐波那契数列,使用递推法,极大降低时间复杂度 public class Fei {public static void main(String[] args) {// ...

  8. java斐波那契优化_用HashMap优化斐波那契数列 java算法

    斐波那契是第一项为0,第二项为1,以后每一项是前面两项的和的数列. 源码:Fibonacci.java public class Fibonacci{ private static int times ...

  9. 斐波那契数列 Java实现

    同样,该算法实现可分为递归实现和非递归实现. 以下为递归实现,从n开始往后退: /*** 计算第n个斐波那契数* @param n* @return*/private int fabonacciRec ...

  10. 算法-斐波那契数列 java

最新文章

  1. 使用UPnP来穿透NAT使内网接口对外网可见
  2. ResultSet转List
  3. [Jmeter系列]Jmeter源码编译步骤(转)
  4. 【机器学习】情侣、基友、渣男和狗-基于时空关联规则的影子账户挖掘
  5. Anaconda安装和使用指南教程:环境管理、包管理、离线安装第三方包
  6. 天才基本法_【书鱼扫文】天才基本法:天才与中国式青春
  7. C#实现网页加载后将页面截取成长图片 | Playwright版
  8. [EffectiveC++]item02:尽量以const,enum,inline代替#define
  9. 目前阶段的任务及计划
  10. 计算机网络知识如何建立数据库,如何将本机的SQL Server数据库上传到网站的数据服务器?...
  11. 科研 | 如何找到研究的突破点?
  12. 几个非常实用性的在线学习Ethical Hacking的网站
  13. 奇怪的电梯(DP动态规划和BFS)
  14. 【读书笔记】大数据 数据挖掘 相关
  15. round函数几位小数c语言,Excel中利用round函数保留两位小数实例详解
  16. 1946电子计算机诞生什么影响,自1946年世界上第一台电子计算机诞生至今.doc
  17. GA算法(遗传算法) ——以求解achley,rastrigin函数为例
  18. 从《三体》中的“降维打击”看网络世界,论维度升级的方法与实践
  19. php中subtr()函数的使用方法
  20. Android 系统原生TTS使用

热门文章

  1. 求最短路径算法之SPFA算法
  2. eclipse导入wsdl文件_Eclipse+Axis使用WSDL文件生成Web Service服务端/客户端
  3. alc662声卡注入id_使用Clover 开启ALC662声卡原生AppleHDA驱动
  4. Scratch之猫和老鼠
  5. lrc歌词编辑器 android,Lrc歌词编辑器(LRC速配歌词)
  6. mysql书单推荐_MySQL零基础入门推荐书籍?
  7. HELIX Design system v4.r3.M0-ISO 1CD
  8. Java笔试面试-算法常用面试题
  9. 星环大数据使用经验总结
  10. 开源免费etl作业批量调度必备软件 Taskctl Free应用版