我如何使下列允許負數並將它們視爲正數。防爆。 -91 = 10 它目前用於取整數並添加所有數字,但只適用於正數。謝謝!數字總和(INC。負數)
public static int sumOfDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n = n/10;
}
return sum;
}
我如何使下列允許負數並將它們視爲正數。防爆。 -91 = 10 它目前用於取整數並添加所有數字,但只適用於正數。謝謝!數字總和(INC。負數)
public static int sumOfDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n = n/10;
}
return sum;
}
簡單的解決方案:添加n = Math.abs(n)
作爲函數的第一行。此解決方案適用於所有號碼,但Integer.MIN_VALUE除外。
始終正確的解決方案:將環路條件替換爲n != 0
,並返回Math.abs(sum)
作爲結果。
非常感謝,學到了新東西! – Lanie909
n = Math.abs(n)。這裏根本沒有遞歸。爲什麼標題? –
@JBNizet'n = Math.abs(n)'對於'Integer.MIN_VALUE'失敗。 – kgeorgiy