数字之和(INC。负数)

时间:2016-11-06 22:51:25

标签: java

如何让以下内容允许使用负数并将其视为正数。防爆。 -91 = 10 它目前适用于获取int和添加所有数字,但仅用于肯定。谢谢!

public static int sumOfDigits(int n) {
  int sum = 0;
    while (n > 0) {
        sum += n % 10;
        n = n / 10;
    }
    return sum;
 }

2 个答案:

答案 0 :(得分:2)

简单解决方案:添加n = Math.abs(n)作为函数的第一行。此解决方案适用于除Integer.MIN_VALUE之外的所有数字。

始终正确的解决方案:按n != 0替换循环条件并返回Math.abs(sum)作为结果。

答案 1 :(得分:0)

public static int sumOfDigits(int n) {
    if (n == 0) return 0;
    else return (n % 10) + sumOfDigits(n / 10);
}