プログラムでは大きな整数を処理する必要がある場合があることを知っておく必要があります。それではどうすればよいでしょうか? java.math パッケージのBigInteger クラスを使用すると、構築メソッド public BigInteger(String val) を使用して 10 進数の BigInteger オブジェクトを構築することで、任意精度の整数演算を提供できます。
このコンストラクターはNumberFormatException 例外を生成する可能性があります。つまり、文字列パラメーター val に数値以外の文字が含まれている場合、NumberFormatException 例外が発生します。
BigInteger クラスの一般的に使用されるメソッドは次のとおりです。
現在の大整数オブジェクトとパラメータで指定された大整数オブジェクトの合計を返します。
現在の大整数オブジェクトとパラメータで指定された大整数オブジェクトの差を返します。
現在の大整数オブジェクトとパラメータで指定された大整数オブジェクトの積を返します。
現在の大整数オブジェクトとパラメータで指定された大整数オブジェクトの商を返します。
現在の大整数オブジェクトの残りとパラメータで指定された大整数オブジェクトを返します。
現在の大きい整数オブジェクトとパラメーターで指定された大きい整数との比較結果を返します。戻り値は 1、-1、または 0 で、それぞれ現在の大きい整数オブジェクトが大きい整数オブジェクトより大きい、小さい、または等しいことを示します。パラメータで指定された整数。
現在の大きな整数オブジェクトの絶対値を返します。
現在の大きな整数オブジェクトの a 乗を返します。
現在の大きな整数オブジェクトの 10 進文字列表現を返します。
現在の大きい整数オブジェクトの p ベースの文字列表現を返します。
大きな整数クラスを使用する方法を見てみましょう。例として、a + b の合計を計算する問題を考えてみましょう。ただし、この問題では、2 つの数値 a と b が超えないことが明確に示されています。 1000桁ということは考えられます。ご存知のとおり、一般的な整形手術では絶対に収まりません。1000桁の数値を加算すると数十億になります。しかし、従来の方法は数値を配列に格納し、加算や桁上げなどの演算をシミュレートすることでした。 、操作が面倒です。 Java の大きな整数クラスを使用する場合、コードは次のように非常に単純になります。
importjava.math.BigInteger;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);BigIntegera=sc.nextBigInteger();BigIntegerb=sc.nextBigInteger();System.out .println(a.add(b));}}
自分のコンピュータでテストして完成させることができます。
C や C++ などの他の言語と比較すると、問題を解決する速度が非常に速いです。