斐波那契数列——java实现
斐波那契数列:指的是这样的数列: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实现相关推荐
- 《LeetCode力扣练习》剑指 Offer 10- I. 斐波那契数列 Java
<LeetCode力扣练习>剑指 Offer 10- I. 斐波那契数列 Java 一.资源 题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N) ...
- 兔子繁殖问题 斐波那契数列 java实现
兔子繁殖问题 斐波那契数列 java实现 问题描述 一对兔子,从出生后第3个月起每个月都生一对兔子. 小兔子长到第3个月开始每个月又生一对兔子. 假如兔子都不死, 请问第1个月出生的一对兔子,第n个月 ...
- 斐波拉契数列 Java三种实现
对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...
- 斐波拉契数列 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*) 也称黄金分割数列,兔子数列 通项 ...
- 斐波那契数java实现_斐波那契数列Java实现[剑指offer]
描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 题解 1.递归实现 采用递归的方式进行实现时,从第n个节点向下递归时,存 ...
- 最长斐波那契数列java实现
class Solution {public int lenLongestFibSubseq(int[] arr) {//建立一个二维数组来存储每一个以i为结尾元素,j为倒数第二个元素的斐波那契数列的 ...
- 递推法:斐波那契数列java
在不使用递归和公式法的情况下,求斐波那契数列,使用递推法,极大降低时间复杂度 public class Fei {public static void main(String[] args) {// ...
- java斐波那契优化_用HashMap优化斐波那契数列 java算法
斐波那契是第一项为0,第二项为1,以后每一项是前面两项的和的数列. 源码:Fibonacci.java public class Fibonacci{ private static int times ...
- 斐波那契数列 Java实现
同样,该算法实现可分为递归实现和非递归实现. 以下为递归实现,从n开始往后退: /*** 计算第n个斐波那契数* @param n* @return*/private int fabonacciRec ...
- 算法-斐波那契数列 java
最新文章
- 使用UPnP来穿透NAT使内网接口对外网可见
- ResultSet转List
- [Jmeter系列]Jmeter源码编译步骤(转)
- 【机器学习】情侣、基友、渣男和狗-基于时空关联规则的影子账户挖掘
- Anaconda安装和使用指南教程:环境管理、包管理、离线安装第三方包
- 天才基本法_【书鱼扫文】天才基本法:天才与中国式青春
- C#实现网页加载后将页面截取成长图片 | Playwright版
- [EffectiveC++]item02:尽量以const,enum,inline代替#define
- 目前阶段的任务及计划
- 计算机网络知识如何建立数据库,如何将本机的SQL Server数据库上传到网站的数据服务器?...
- 科研 | 如何找到研究的突破点?
- 几个非常实用性的在线学习Ethical Hacking的网站
- 奇怪的电梯(DP动态规划和BFS)
- 【读书笔记】大数据 数据挖掘 相关
- round函数几位小数c语言,Excel中利用round函数保留两位小数实例详解
- 1946电子计算机诞生什么影响,自1946年世界上第一台电子计算机诞生至今.doc
- GA算法(遗传算法) ——以求解achley,rastrigin函数为例
- 从《三体》中的“降维打击”看网络世界,论维度升级的方法与实践
- php中subtr()函数的使用方法
- Android 系统原生TTS使用
热门文章
- 求最短路径算法之SPFA算法
- eclipse导入wsdl文件_Eclipse+Axis使用WSDL文件生成Web Service服务端/客户端
- alc662声卡注入id_使用Clover 开启ALC662声卡原生AppleHDA驱动
- Scratch之猫和老鼠
- lrc歌词编辑器 android,Lrc歌词编辑器(LRC速配歌词)
- mysql书单推荐_MySQL零基础入门推荐书籍?
- HELIX Design system v4.r3.M0-ISO 1CD
- Java笔试面试-算法常用面试题
- 星环大数据使用经验总结
- 开源免费etl作业批量调度必备软件 Taskctl Free应用版