您的位置:首页 > 编程语言 > Java开发

Java实现斐波那契数列并输出前10000个数值

2016-06-13 14:04 501 查看
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:0、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.math.BigInteger;

import java.util.Scanner;

public class Fibonacci{

public static void main(String[] args) {

System.out.println("请输入您要得到的个数:");

int n = new Scanner(System.in).nextInt();

for (int i = 1; i <= n; i++) {

System.out.println(fibonacciNormal(i) + " " + i);

}

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 BigInteger fibonacciNormal(int n){

if (n == 1) {

return new BigInteger("0");

}

BigInteger n1 = new BigInteger("0"), n2 = new BigInteger("1"), sn = new BigInteger("0");

for (int i = 0; i < n - 1; i++) {

sn = n1.add(n2);

n1 = n2;

n2 = sn;

}

return sn;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: