(Java)有如下规律的一组数字,求该组数字的第137位 a)1 1 2 3 5 8 13 21 34 55 答案是?
答案:1 悬赏:10 手机版
解决时间 2021-03-25 22:04
- 提问者网友:欲劫无渡
- 2021-03-25 18:16
(Java)有如下规律的一组数字,求该组数字的第137位 a)1 1 2 3 5 8 13 21 34 55 答案是?
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-03-25 19:49
你得出的结果是数据溢出的结果,因为两个正整数相加不可能是负数.
这道题实际是求斐波那契数列的第137项(题目给出的数列是斐波那契数列),对于这么大的数,必须要用Java语言的BigInteger类,完整的Java程序如下
import java.math.BigInteger;
public class A {
public static void main(String[] args) {
int n=137,i=2;
BigInteger a=new BigInteger("1");
BigInteger b=new BigInteger("1");
BigInteger fn=new BigInteger("0");
while(i
fn=a.add(b);
a=b;
b=fn;
i++;
}
System.out.println(fn);
}
}
运行结果
19134702400093278081449423917追问我们老师倒是没说过 BigInteger。。这题只有这个解答方法嘛?追答是的,只有用Java数学包提供的BigInteger类(一般用于整数)或者BigDecimal类(一般用于小数),才能处理这么大的数,long(长整型)已经不够用了,用了也会溢出,就是出现负数的情况.追问好的谢谢
这道题实际是求斐波那契数列的第137项(题目给出的数列是斐波那契数列),对于这么大的数,必须要用Java语言的BigInteger类,完整的Java程序如下
import java.math.BigInteger;
public class A {
public static void main(String[] args) {
int n=137,i=2;
BigInteger a=new BigInteger("1");
BigInteger b=new BigInteger("1");
BigInteger fn=new BigInteger("0");
while(i
fn=a.add(b);
a=b;
b=fn;
i++;
}
System.out.println(fn);
}
}
运行结果
19134702400093278081449423917追问我们老师倒是没说过 BigInteger。。这题只有这个解答方法嘛?追答是的,只有用Java数学包提供的BigInteger类(一般用于整数)或者BigDecimal类(一般用于小数),才能处理这么大的数,long(长整型)已经不够用了,用了也会溢出,就是出现负数的情况.追问好的谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯