我想獲得數字的四次方的餘數。這裏是我的代碼:使用BigInteger繞過Integer.toString()
static int testMod(int a, int mod) {
/* //This looks clear
BigInteger a4 = a;
return (a4.pow(4))%mod;
*/
//This works
String a2String = Integer.toString(a);
String mod2String = Integer.toString(mod);
BigInteger a4 = new BigInteger(a2String);
BigInteger modBigInt = new BigInteger(mod2String);
a4 = a4.pow(4);
return a4.remainder(modBigInt).intValue();
}
它工作正常,但轉換爲字符串似乎沒有必要,並使用%
操作會比a.remainder(b)
更簡潔。是否有可能重寫它以使其更清楚?
應該是「第四」或「4」的力量。 – mbomb007
https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#valueOf-long- –
由於a4的長度可能會比較長,您可能會失去精度並返回錯誤如果您將a4轉換爲int以執行模數運算,請回答。 – user3745362