16

Javaで2つの長い値のモジュロ(%)を見つけるにはどうすればよいですか?私のコードは「整数が大きすぎます」と言った後、変更しようとしている数値が続きます。長くキャストしてみましたが、うまくいきませんでした。それをBigIntegerに変換し、剰余法を使用する必要がありますか?ありがとう。

4

3 に答える 3

22

%オペレーターは長い間働きます。Lのように、数値リテラルの最後に固執するのを忘れたようです123456789L。あなたのコードを見ることができますか?

于 2011-04-20T23:04:16.990 に答える
6

整数は2147483 647までしか持てません。それより大きくしたい場合、たとえば30億の場合は、長い整数を指定する必要があります。

class Descartes {
    public static void main(String[] args) {
        long orig = Long.MAX_VALUE;
        long mod = orig % 3000000000; // ERROR 3000000000 too big
        long mod = orig % 3000000000L; // no error, specified as a long with the L
    }
}

大文字または小文字のLを使用できますが、小文字は数字の1と非常によく似ているため、大文字を使用することをお勧めします。

于 2011-04-20T23:08:53.687 に答える
0

%と同様に機能するremainder()メソッドを持つBigIntegerクラスを使用して作業することもできます。

于 2011-04-20T23:11:23.080 に答える