1
這是的Java代碼導致897986030
:Java和Python代碼提供不同的輸出?
import java.util.Arrays;
import java.util.Scanner;
class Algorithm {
public static void main(String args[]) throws Exception {
int mod = 1000000007;
long factor = 900414279;
long p1 = 883069911;
long p2 = 32;
long val = 560076994;
val = (val%mod+factor*p1*p2%mod)%mod;
System.out.println(val);
}
}
這相當於的Python代碼輸出480330031
:
factor = 900414279
p1 = 883069911
p2 = 32;
val = 560076994;
mod = 1000000007;
val = (val%mod+factor*p1*p2%mod)%mod;
print val
請幫助。謝謝!
非常感謝..我明白了。在添加之前,我需要使用Big Integer進行乘法運算。 :) – Shimano
不需要BigInteger:只需一次將兩件事物相乘,而不是全部三件。也就是說,使用'(factor * p1%mod)* p2%mod'來代替'factor * p1 * p2%mod'。 –
是的。那就是我所做的。沒有更新我的評論。謝謝 :) – Shimano