[Java]数字越大,斐波那契数列的输出就越奇怪

水果圈

我编写了一个输出斐波那契数列的程序,该程序对于少量数字也可以正常工作。当我为序列的第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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章