编写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));
}
}
代码如下
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);
}
}
这是程序
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯