我编写了一个输出斐波那契数列的程序,该程序对于少量数字也可以正常工作。当我为序列的第10万个数字设置循环时,程序变得非常奇怪,并开始输出负数和正数。
起初我虽然是因为我将int类型用于数字,但是后来我将其更改为long,但程序仍然输出相同的内容。我对Java很陌生,所以我猜我的程序有问题或者我错过了一个大于long的类型,并且不会输出负数。
下面是代码。请随意评论除错误以外的其他内容,因为我对Java还是很陌生,因此代码可能看起来有些业余:
public class Problem2{ //fibonacci sequence
public static void main (String [] args ){
long first = 1;
long second = 1;
System.out.println(first);
System.out.println(second);
for ( int i = 1; i <= 100 ; i++){
long third = first + second;
first = second;
second = third;
System.out.println(third);
}
}
}
前90个数字的输出没问题:1 1 2 3 5 8 13 21 ...之后,后2个输出是:
第90:7540113804746346429
第91名:-6246583658587674878
如果这个问题被问过很多次,我深表歉意。我经过一番搜索,发现没有什么我能理解的,所以我认为最好问一下。
BigInteger类分配所需的内存,以容纳要求保存的所有数据位
您可以将其声明并初始化为...例如:BigInteger bi1 = new BigInteger(“ 12345678900123”);
将程序更改为
BigInteger first, second, third ;
first= new BigInteger("123");
second= new BigInteger("50");
for ( int i = 1; i <= 100 ; i++){
third = first.add(second);
first = second;
second = third;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句