# 首先我们直接看一个demo以及他的结果 public class QQ { public static void main(String[] args) throws ParseException { // 1,1,2,3,5,8 ... int n = 50; Long start = System.currentTimeMillis(); System.out.println(fun(n)); System.out.println("time1 : " + (System.cu…
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列从第三项开始,每一项都等于前两项之和. //java编程:三种方法实现斐波那契数列//其一方法: public class Demo1 { // 定义三个变量方法 public static void main(String[] args) { int a = 1, b = 1, c = 0; Sy…
最近在面试的时候被问到了斐波那契数列,而且有不同的实现方式,就在这里记录一下. 定义 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368. 这个数列从第3项开始,每一项都等于前两项之和. 参考自百度百科 Java实现 递推方式 public static void testFibonacci1(int n)…
斐波那契数列想必大家都知道吧,如果不知道的话,我就再啰嗦一遍, 斐波那契数列为:1 2 3 5 8 13 ...,也就是除了第一项和第二项为1以外,对于第N项,有f(N)=f(N-1)+f(N-2). 下面我用三种方法实现这个函数,分别是:递归,循环,矩阵. 递归方法: public class Feibo { //递归方法 public static int recFeiBo(int n) { if(n<=0) { return 0; } if(n==1 || n==2) { return 1…
题目:斐波那契数列 考点:递归和循环 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0),n<=39. 法一:递归法,不过递归比较慢,会超时,所以不考虑 举个小点的例子,n=4,看看程序怎么跑的:     Fibonacci(4) = Fibonacci(3) + Fibonacci(2);                     = Fibonacci(2) + Fibonacci(1) + Fibonacci(1) + Fibona…
1,1,2,3,5,8,13,21...... 以上的数列叫斐波那契数列,今天的面试第一题,输出前50个,这里记录下. 方式一 package com.geenk.demo.my; /** * @author DUCHONG * @since 2018-03-21 19:21 **/ public class FeiBoNaQie1 { public static void main(String[] args) { int def[]=new int[50]; def[0]=1; def[1]…
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 思路 递归 若n<=2;返回n; 否则,返回Fibonacci(n-1)+Fibonacci(n-2); 递推 拿两个变量记录上两个值和一个临时变量记录当前相加结果即可 递归的方法可能会遇到Stack Overflow,所以我们可以考虑用动态规划的方法来实现.采用自底向上方法来保存了先前计算的值,为后面的调用服务. 参考代码 public static int Fibo…
书中方法一:递归,这种方法效率不高,因为可能会有很多重复计算. public long calculate(int n){ if(n<=0){ return 0; } if(n == 1){ return 1; } return calculate(n-1) + calculate(n-2); } 书中方法二:更好的方法是将这个斐波那契数列的计算理解成动态规划,第n步的结果依赖于第n-1步和第n-2步的结果,状态转移方程很容易写出来. public long calculate2(int n){…
斐波那契是第一项为0,第二项为1,以后每一项是前面两项的和的数列. 源码:Fibonacci.java public class Fibonacci{ private static int times=0; public static void main(String args[]){ int nums = fibonacci(30); System.out.println("结果:"+nums); System.out.println("次数:"+times);…
描述 一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000. 输入 输入数据的第一行为测试用例的个数t,接下来为t行,每行为一个整数n(0≤n≤1000). 输出 输出每个测试用例的斐波那契数F(n). 样例输入 2 1 2 样例输出 1 1 import java.math.BigInteger; import java.util.ArrayList; import jav…
ylbtech-Java-Runoob-高级教程-实例-方法:04. Java 实例 – 斐波那契数列 1.返回顶部 1. Java 实例 - 斐波那契数列  Java 实例 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 特别指出:第0项是0,第1项是第一个1. 这个数列从第三项开始,每一项都等于…
斐波那契数列的定义: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列安纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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代码是: public int Fibonacci(int n) { i…
Java 5 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程序.它是以 前的 StringTokenizer 和 Matcher 类之间的某种结合.由于任何数据都必须通过同一模式的 捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从 输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外, Scann输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外, 1.斐波那契数列 Java中Scanner类这是一个…
The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….. In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation Fn = Fn-1 + Fn-2with seed va…
题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列是以递归的方法来定义: F0 = 0 (n=0)F1 = 1 (n=1)Fn = F[n-1]+ F[n-2](n=>2)--------------------- 方法一:使用递归计算 def fibonacci(month): if month == 1: return 1 elif month…
斐波那契数列定义 Fibonacci array:1,1,2,3,5,8,13,21,34,... 在数学上,斐波那契数列是以递归的方法来定义: F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) 用文字描述,就是斐波那契数列由0和1开始,之后的斐波那契系数就是由之前的两数之和想加而得,首几个斐波那契数列系数是:0,1,1,2,3,5,8,13,21,34,55,...特别指出:0不是第一项,而是第零项. 递归解法 最容易想到的解法自然是按照公式的递归解法,具体实现…
1.前言 我们都知道斐波那契数列有很多种实现方法,在jdk1.8以前没有流操作,只能通过递归或者迭代等其他方式来实现斐波那契数列, 但是jdk1.8以后,有了流操作,我们就可以使用流来实现斐波那契数列. 2.代码 Stream.iterate(new int[] {0, 1}, i -> new int[] {i[1], (i[0] + i[1])}) .limit(10) .forEach(i -> System.out.print(i[0]+", ")); //0, 1…
文章来自:有解网 http://www.youjieweb.com/original/index/articleId/64.html 使用场景: 面试 本文讲的是如何用php实现PHP实现斐波那契数列,有人看到这个标题估计就有点不赖烦了,因为一个工作数年的php程序员可能都没有遇到过实现斐波那契数列的需求.然而,如果你的面试经历比较频繁,那么你很可能遇到过用php实现斐波那契 数列的面试题,而面试的质量往往直接决定公司给你开的工资.另外,你还可以在小白面前强势秀上一波. 要实现斐波那契数列,首先…
java编程基础--斐波那契数列 问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:可能出现的情况:(1) n=1 ,一种方法 ;(2)n=2,两种方法;(3)对于第n阶,只能从第n-1阶或者n-2阶跳上,所以得出结论: | 1, (n=1) f(n) =     | 2, (n=2) | f(n-1)+f(n-2) ,(n>2,n为整数) public static void main(String[] args) { int a =2…
斐波那契数列:0.1.1.2.3.5.8.13………… 他的规律是,第一项是0,第二项是1,第三项开始(含第三项)等于前两项之和. > 递归实现 看到这个规则,第一个想起当然是递归算法去实现了,于是写了以下一段: public class RecursionForFibonacciSequence { public static void main(String[] args) { System.out.println(recursion(10)); } public static double…
import java.util.Scanner; /* 斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列. */ public class Fibonacci { // 使用递归方法 private static void recursion(int n) { int j = n; System…
/** * 描述:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子, * 假如兔子都不死,问每个兔子总数为多少? * 分析:根据题目条件可以推断 * 兔子的规律为数列 1,1,2,3,5,8,13,21...(即:斐波那契数列) * 作者:徐守威 */ package com.xushouwei; import java.util.*; public class T1 { /** * @param args */ public static void ma…
java大数做斐波那契数列:  思路:1.       2.可以用数组存着 import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner cin=new Scanner(System.in); while(cin.hasNext()){//remermber BigInteger num1=cin.nextBigI…
斐波那契数列问题:如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第三个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,1年后能繁殖出多少对兔子? 首先手工计算来总结规律,如下表 注意总数这一列 1+1=2 1+2=3 2+3=5 3+5=8 5+8=13 可以得出规律,第n个斐波那契数=第n-1个斐波那契数+第n-2个斐波那契数 为了计算n,必须计算n-1和n-2:为了计算n-1,必须计算n-2和n-3:直到n-x的值为1为止,这显示是递归大显身手的地方.来看…
很长一段时间里,我都非常疑惑:“我写的技术文章不差啊,有内容的同时还很有趣,不至于每篇只有区区几十个人读啊?为什么有些内容简单到只有一行注册码的文章浏览量反而轻松破万?”这样的疑惑如鲠在喉啊!写技术博客做分享的人,有几个真心实意的说只写给自己看的?这无非是写出来后没人看的自我安慰(不好意思,我就属于这种人,/(ㄒoㄒ)/~~). 但就在昨天晚上,我终于恍然大悟:技术交流群里有一个叫涛涛的小伙伴用几句通俗易懂的道理就点醒了我:“高深的文章,看懂的人少,适合高层:像只有注册码的文章,反而是大众所需,…
 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项. 思路 如果直接写递归函数,由于会出现很多重复计算,效率非常底,不采用. 要避免重复计算,采用从下往上计算,可以把计算过了的保存起来,下次要计算时就不必重复计算了:先由f(0)和f(1)计算f(2),再由f(1)和f(2)计算f(3)……以此类推就行了,计算第n个时,只要保存第n-1和第n-2项就可以了.…
为什么说 “算法是程序的灵魂这句话一点也不为过”,递归计算斐波那契数列的第50项是多少? 方案一:只是单纯的使用递归,递归的那个方法被执行了250多亿次,耗时1分钟还要多. 方案二:用一个map去存储之前计算出的某一项的数据map<n, feibo(n)>,当后面项需要使用前面项的值时,只需要从map中取即可,递归的那个方法仅仅行了97次,耗时还不到1ms. 而这仅仅是计算第50项的值,再往大去计算的话,方案一耗时会更久,因为执行的次数是呈现指数增加的,而且递归的次数过多还有可能会出现栈溢出的…
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 特别指出:第0项是0,第1项是第一个1. 这个数列从第三项开始,每一项都等于前两项之和. 以下实例演示了 Java 斐波那契数列的实现: MainClass.java 文件 public class MainClass {          publi…
剑指offer第九题Java实现 题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. public class Test9 { public static void main(String[] args) { Test9 test9 = new Test9(); System.out.println(test9.Fibonacci(390000)); System.out.println(test9.Fibonacci3(39)); } /** * 为什么不采…
一,求最大,最小值 int[] a={21,31,4,2,766,345,2,34}; //这里防止数组中有负数,所以初始化的时候给的数组中的第一个数. int max=a[0]; int min=a[0]; for (int i = 0; i < a.length; i++) { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i]; } System.out.println("最大的数是:"+max); System.out.p…