大众信息网

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

答案:3  mip版
解决时间 2021-01-09 06:02
  • 提问者网友: 妳莂騙莪
  • 2021-01-08 05:04
编写JAVA小程序,求当n=100时斐波那契(Fibonacci)数列的fib(n-1)/fib(n)的比值。
最佳答案
  • 二级知识专家网友:单剑走天涯
  • 2021-01-08 05:47
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));
}
}
全部回答
  • 1楼网友:用命换你心
  • 2021-01-08 07:49
public class Fibonacci { public long method(long n) { long a = 0; if( n == 1 || n == 2) a = 1; else a = method(n-1) + method(n-2); return a; } public static void main(String[] args) { Fibonacci fibonacci = new Fibonacci(); System.out.println(fibonacci.method(100-1)/fibonacci.method(100)); } } 数列从1开始 数字太大..我的电脑算不出来是多少
  • 2楼网友:獨守空城
  • 2021-01-08 07:18
import java.io.IOException; public class Fib { long result=0; public long result(int n){ if(n==1||n==2) result=1; else result=result(n-1)+result(n-2); return result; } public static void main(String[] args ){ Fib f=new Fib(); double bizhi=f.result(100)/f.result(99); System.out.println(bizhi); } } 这是程序
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯