用java实现斐波那契数列
斐波那契数列源于数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入的计算问题。假设某种兔子兔子,出生第一个月变成大兔子,大兔子再过一个月能生下一对小兔子,且一年内不会发生死亡。现有一对小兔子,请问一年后有多少只兔子?
分析这个数列其实是有规律的
第一个月:一对小兔子
第二个月:一对大兔子
第三个月:一对大兔子+一对小兔子
第四个月:两对大兔子+一对小兔子
…
…
仔细分析:
数列如下 1 1 2 3 5 8 13 21
前面两位的和都是第三位的结果
1+1 = 2
1+2 = 3
2+3 = 5
3+5 = 8
5+8 = 13
8+13= 21
@author:肖佳嘉
@Date:May 1, 2019
package File_Statistics;
import java.math.BigInteger;
public class File05_Fibonacci {
public static void main(String[] args) {
//通过递归实现斐波那契数列的计算
//1 1 2 3 5 8 13 21
System.out.println(fun(8));
//通过非递归方法实现斐波那契数列的计算
fun2(8);
}
public static void fun2(int z ) {
int [] arr = new int[z];
arr[0]=1;
arr[1]=1;
for(int j =2; j<arr.length;j++) {
arr[j] = arr [j-2] + arr[j-1];
}
System.out.println(arr[arr.length-1]);
}
//通过递归实现斐波那契数列的计算
public static int fun(int i ) {
if(i == 1) {
return 1;
}else if(i == 2) {
return 1;
}else {
return fun(i-2)+fun(i-1);
}
}
}
测试结果:
21
21
————————————————
版权声明:本文为CSDN博主「肖佳嘉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiao9469/article/details/89738547
用java实现斐波那契数列的更多相关文章
- Java-Runoob-高级教程-实例-方法:04. Java 实例 – 斐波那契数列
ylbtech-Java-Runoob-高级教程-实例-方法:04. Java 实例 – 斐波那契数列 1.返回顶部 1. Java 实例 - 斐波那契数列 Java 实例 斐波那契数列指的是这样一 ...
- 【Java】斐波那契数列(Fibonacci Sequence、兔子数列)的3种计算方法(递归实现、递归值缓存实现、循环实现、尾递归实现)
斐波那契数列:0.1.1.2.3.5.8.13………… 他的规律是,第一项是0,第二项是1,第三项开始(含第三项)等于前两项之和. > 递归实现 看到这个规则,第一个想起当然是递归算法去实现了, ...
- java大数 斐波那契数列
java大数做斐波那契数列: 思路:1. 2.可以用数组存着 import java.math.BigInteger; import java.util.Scanner; public ...
- Java:斐波那契数列
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10 ...
- Java实现斐波那契数列Fibonacci
import java.util.Scanner; public class Fibonacci { public static void main(String[] args) { // TODO ...
- Java 实现斐波那契数列
public class Fibonacci { private static int getFibo(int i) { if (i == 1 || i == 2) return 1; else re ...
- java递归 斐波那契数列递归与非递归实现
递归简单来说就是自己调用自己, 递归构造包括两个部分: 1.定义递归头:什么时候需要调用自身方法,如果没有头,将陷入死循环 2.递归体:调用自身方法干什么 递归是自己调用自己的方法,用条件来判断调用什 ...
- Java实现斐波那契数列的多种方法
小编综合了很多算法相关的书籍以及其他,总结了几种求斐波那契数列的方法 PS:其中的第83行的递归法是求斐波那契数列的经典方法 public class 斐波那契数列 { //迭代法 public st ...
- Java面试题:小白不得不懂的斐波那契数列
很长一段时间里,我都非常疑惑:“我写的技术文章不差啊,有内容的同时还很有趣,不至于每篇只有区区几十个人读啊?为什么有些内容简单到只有一行注册码的文章浏览量反而轻松破万?”这样的疑惑如鲠在喉啊!写技术博 ...
随机推荐
- LVM 相关知识
LVM 相关知识 一.示例图 二.概念 名词 全称 释义 PV Physical Volume 物理硬盘.硬盘分区或者RAID磁盘阵列,先要创建pv VG Volume Group 卷组建立在物理卷之 ...
- Installing SFTP/SSH Server on Windows using OpenSSH
Installing SFTP/SSH Server 1. On Windows 10 version 1803 and newer In Settings app, go to Apps > ...
- cka 英文考试题
## CKA真题解析 #### 1**Set configuration context $kubectl config use-context k8s. Monitor the logs of Po ...
- Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] 错误(Day_25)
错误: 在maven项目,web启动的时候报这个错误 Failed to start component [StandardEngine[Tomcat].StandardHost[localho ...
- Python-名片管理器
# 需要完成的基本功能: # 添加名片 # 删除名片 # 修改名片 # 查询名片 # 退出系统 # 程序运行后,除非选择退出系统,否则重复执行功能 list_info = [] # 创建一个空列表 # ...
- Django(38)mac安装redis
安装redis 1.使用Homebrew安装Redis brew install redis 执行上述命令后出现以下内容,则成功安装 Download failed: https://mirrors. ...
- python mixin到底是什么
python mixin到底是什么 1.什么是Mixin 在面向对象编程中,Mixin是一种类,这种类包含了其他类要使用的方法,但不必充当其他类的父类.其他类是如何获取Mixin中的方法因语言的不同而 ...
- TVM优化Deep Learning GPU算子
TVM优化Deep Learning GPU算子 高效的深度学习算子是深度学习系统的核心.通常,这些算子很难优化,需要HPC专家付出巨大的努力. 端到端张量IR / DSL堆栈TVM使这一过程变得更加 ...
- GPU编程和流式多处理器
GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...
- git操作分支的常用的命令
查看所有的分支: git branch -a 查看当前所在的分支: git branch 检出分支: ...