【发布时间】:2019-11-06 03:47:13
【问题描述】:
我在一个教程网站上查看递归的主题,遇到了以下问题和解决方案:
问题:
给定一个整数,创建一个函数,该函数返回该整数中所有单个数字的总和。例如:如果 n = 4321,则返回 10,因为 4+3+2+1=10。
解决方案:
def sum_func(n):
if n<10:
return n
else:
return n%10 + sum_func(int(n/10))
pass
我知道“如果 n
有人可以帮我理解“n%10 + sum_func(int(n/10))”的作用吗?如果你能一次走一遍逻辑,那将不胜感激!
【问题讨论】:
-
int(n/10)是 23,但您没有添加它。相反,您添加的是sum_func(int(n/10)),即5(2+3)。 -
n%10按此顺序给出最后一个整数1, 2 3 4。所以试着得到你需要用int(n/10)分割n的数字,这给出了432, 43, 4,所以你得到了1+2+3+4=10