解決600851475143 的「整數太大」錯誤
考慮以下程式碼片段:
public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143); } private Long function(long i) { Stack<Long> stack = new Stack<>(); for (long j = 2; j <= i; j++) { if (i % j == 0) { stack.push(j); } } return stack.pop(); } }考慮以下程式碼片段:程式碼使用傳遞給函數的文字600851475143 執行,它會拋出「整數太大」錯誤。要理解其中的原因,我們需要深入研究所涉及的資料類型。
是一個 64 位元有符號整數,提供了更廣泛的值範圍,從 -9,223,372,036,854,775,808 到 9,223,372,036,8547,77。
obj.function(600851475143L);
這裡的問題是 600851475143 超出了 int 可表示的最大值。要解決此問題,我們需要透過在數字後面附加「L」後綴來使用 long 類型的文字:600851475143L。
透過此修改,程式碼將運行而不會遇到錯誤,並將傳回600851475143L 的最大素因子。以上是為什麼我的 Java 程式碼在使用 600851475143 時會拋出「整數太大」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!