为了应付软考,补补基础知识,特记录下以备后用。
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。
以下是Java代码实现(递归与递推两种方式):
import java.util.Scanner;
/**
* Fibonacci
*
* @author tongqian.zhang
*/
public class Fibonacci {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input this fibonacci n:");
int n = scanner.nextInt(); // 假设输入为大于零的整数
System.out.println(fibonacci(6) + ":" + fibonacciNormal(6));
int sum = 0;
for(int i = 1; i <= n; i++){
sum += fibonacci(i);
}
System.out.println(sum);
}
// 递归实现方式
public static int fibonacci(int n){
if(n <= 2){
return 1;
}else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
// 递推实现方式
public static int fibonacciNormal(int n){
if(n <= 2){
return 1;
}
int n1 = 1, n2 = 1, sn = 0;
for(int i = 0; i < n - 2; i ++){
sn = n1 + n2;
n1 = n2;
n2 = sn;
}
return sn;
}
}
分享到:
相关推荐
编写一个Java程序,用于输出Fibonacci数列的前20项。
Java实现斐波那契数列的前n项和.。。。。。。。。
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。java代码实现该数列
斐波那契数列java的简单实现,很简单明了
java代码实现斐波那契数列 类似1 1 2 3 5 8 输出第n个数 java开发工程师 笔试一般经常考到
java中斐波那契数列的简单实现方法.docx
主要介绍了java实现斐波那契数列的3种方法,有需要的朋友可以参考一下
主要介绍了fibonacci数列(斐波那契数列)示例,大家参考使用吧
如何利用java求解Fibonacci数列
包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。...
斐波那契数列 *以兔子繁殖为例子而引入,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、…… * 在数学逻辑上以递归方法定义
用Java编写的斐波那契数列并且用文本保存结果
The Fibonacci numbers Fn are defined as follows: F0 is 1, F1 is 1, and Fi+2 = Fi + Fi+1 , where i = 0, 1, 2, . . . . In other words, each number is the sum of the previous two numbers. The first few ...
用java语言写的求求fibonacci数列第1000项的值,用的递归算法.是初学java练习递归的好素材.
Fibonacci(斐波那契)数列的JAVA解法,包含了斐波那契数列常见问题的一些算法。
资源类型:编程题 难度:简单 覆盖范围:Java基础、数组和循环 ...斐波那契数列是一个数列,每个数字都是前两个数字的和。数列的前两个数字是0和1。数列的前几项是:0, 1, 1, 2, 3, 5, 8, 13, 21, ...
封装的Fibonacci 斐波那契数列。输入想要的斐波那契数列的长度,输出结果数列
java代码-使用java解决斐波那契数列递归的源代码
java用非递归的方法打印Fibonacci数列。。。。。。。。
斐波那契数列(fibonacci)-java的非递归实现。