编写JAVA小程序,求当n=100时斐波那契(Fibonacci)数列的fib(n-1)/fib(n)的比值。

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:12:32

n=100时数目巨大,因此保存数字用的类型为BigInteger

代码如下

import java.math.BigInteger;

public class Fibonacci {
static BigInteger[] fib;

// 获得斐波那契数列
public static void getFibonacci(int max) {
fib = new BigInteger[max];
fib[0] = fib[1] = BigInteger.ONE;
for (int i = 2; i < max; i++) {
fib[i] = fib[i - 1].add(fib[i - 2]);
}
}

// 获得斐波那契数列位置为index的值
public static BigInteger fib(int index) {
return fib[index - 1];
}

public static void main(String[] args) {
getFibonacci(100);// 生成长度为100的斐波那契数列
BigInteger gcd = fib(100).gcd(fib(99));// 求最大公约数进行约分
System.err.println("fib(99)/fib(100)=" + fib(99).divide(gcd) + "/"
+ fib(100).divide(gcd));
}
}

import java.io.IOException;

public class Fib {
long result=0;
/**
* 这是求斐波那契数的函数
* @param n
* @return
*/
p