5

フィボナッチ シーケンサーを変更して、100 項に達した後の数値がラップアラウンドして負にならないように取り組んでいます。私が書いたこのコードで BigInteger を使用するにはどうすればよいですか。

package me.kevinossia.mystuff;

import java.util.Scanner;

public class FibonacciDisplayer 
{
public static void main(String[] args)
{

    Scanner input = new Scanner(System.in);
    int total;
    System.out.print("This is a Fibonacci sequence displayer.\nHow many numbers would you like it to display?");
    total = input.nextInt();
    long[] series = new long[total];
    series[0]=0;
    series[1]=1;

    for(int i=2;i<total;i++)
    {
        series[i]=series[i-1] + series[i-2];
    }
    for(int j=0; j<total; j++)
    {
        System.out.print(series[j] + "\n");
    }
    input.close();
}
}

グーグルで高低を検索しましたが、私のケースに固有のものは見つかりません。

4

2 に答える 2

6

BigInteger のみを使用することが確実な場合は、BigInteger の配列を作成することを検討する必要があります。以下のようなので

BigInteger[] series = new BigInteger[total];
series[0]=BigInteger.ZERO;
series[1]=BigInteger.ONE;

and in loop do
series[i] = series[i-1].add(series[i-2])

この追加APIを参照してください

于 2013-03-21T03:46:27.553 に答える
1

total も BigInteger の場合、

BigInteger total = new BigInteger("1000000000000000");
BigInteger[] series = new BigInteger[total.intValue()];
series[0] = BigInteger.ZERO;
series[1] = BigInteger.ONE;
series[i] = series[i-1].add(series[i-2]);
于 2015-03-04T06:32:12.910 に答える