如何以递归的方式对数字的数字求和,直到只剩下一个数字?
示例:使用输入9234
,结果将是9
,因为9 + 2 + 3 + 4 = 18
然后是1 + 8 = 9
。
这是我目前的代码,但我想总结,直到只有一位数
int getsum(int n) {
return n == 0 ? 0 : n % 10 + getsum(n/10);
}
答案 0 :(得分:0)
int sum (int n) {
return n < 10 ? n : sum(n%10 + sum(n/10));
}
答案 1 :(得分:-2)
有几种可能性,其中之一是:
public static int getSum(int n) {
int s = getSumHelper(n); // your original (private) method
while (s > 9)
s = getSumHelper(s);
return s;
}
编辑:您的原始代码是完整性的,因为似乎存在混淆。
private static int getSumHelper(int n) {
return n == 0 ? 0 : n % 10 + getSumHelper(n/10);
}