递归:数字的总和,直到剩下一位数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归:数字的总和,直到剩下一位数相关的知识,希望对你有一定的参考价值。

如何以递归方式对数字的数字求和,直到只剩下一个数字?

示例:使用输入9234,结果将是9,因为9 + 2 + 3 + 4 = 18然后1 + 8 = 9

这是我目前的代码,但我想总结,直到只有一位数

int getsum(int n) {
   return n == 0 ? 0 : n % 10 + getsum(n/10);
}
答案

有几种可能性,其中之一是:

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);
}
另一答案
int sum (int n) {
    return n < 10 ? n : sum(n%10 + sum(n/10));
}

以上是关于递归:数字的总和,直到剩下一位数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript - 代码片段,Snippets,Gist

计算数字中位数的递归函数

2021-08-30 计算一个数的每位之和

如何在python中重复找到每个T数字的数字总和的数字总和,直到它成为一个数字?

剑指offer[面试题17:打印从1到最大的n位数]

Java - 数字的递归总和及其工作原理