首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字根递归算法

数字根递归算法
EN

Stack Overflow用户
提问于 2019-12-24 20:50:16
回答 1查看 104关注 0票数 0

有很多方法可以找到一个数字的数字根,它们都是相似的,但是我无法理解下面的一个:

代码语言:javascript
复制
int digitalRoot(int n)
   if (n < 10)
      return n;
   else
      return digitalRoot(n / 10 + n % 10);

我明白算法的作用,但不明白它为什么工作,一个数字的数字根与n/ 10 +n% 10的和是如何相关的。如果有一个简单的解释,也许有人可以简单地向我解释它?

我很难看出以下获取数字根的方法之间有什么关系,但它们给出的结果是相同的,这正是我想要理解的。

  1. 1729 => 1+7+2+9= 19
  2. 19 => 1+9= 10
  3. 10 => 1+0= 1

  1. 1729 => 172 +9= 181
  2. 181 => 18 +1= 19
  3. 19 => 1+9= 10
  4. 10 => 1+0=1

G 218

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-24 21:07:53

也许有一个例子能更好地解释:

n是1234

函数的第一次调用返回123 + 4

现在n=127,第二个调用返回12 + 3+4

现在是n=19,第三次调用返回1 + 2+3+4

结果是第四次呼叫后的1

所以,它基本上把所有数字加起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59473294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档