【发布时间】:2019-10-12 06:12:18
【问题描述】:
如何使用递归使函数返回所有数字的总和,直到它变为 1 位数字?我能够创建一个函数来获取所有数字的总和,但似乎无法找到一种方法来递归地对总和本身的数字求和:
class sum_of_digits
{
static int sum_of_digit(int n)
{
if (n == 0)
return 0;
return (n % 10 + sum_of_digit(n / 10));
}
public static void main(String args[])
{
int num = 12345;
int result = sum_of_digit(num);
System.out.println("Sum of digits in " +
num + " is " + result);
}
}
此代码打印“12345”的总和,即 15。但我需要对其进行更改,以便打印 1 + 5 的总和,即 6。
【问题讨论】:
-
创建一个方法 recursiveSumUntilOneDigitLeft()。从 main 调用它。在此方法中,调用 sum_of_digit()。如果结果多于一位,请使用结果调用 recursiveSumUntilOneDigitLeft()。
-
@JBNizet 它有效,谢谢。您认为没有其他方法可以使其工作吗?
-
确保在出现负值的情况下添加边界检查