所以我在网上研究递归函数.并且一个问题要求我编写一个函数来将数字的数字加在一起.例如(1023) - > 1 + 0 + 2 + 3 = 6.我使用%和//每次都去掉一个数字.但是,我不知道如何将它们加在一起.我能得到的最接近的是打印出每个数字.任何人都可以帮我解决或者给我一个提示吗?
def digitalSum(n):
if n < 10:
sum_total = n
print(sum_total)
else:
sum_total = n % 10
digitalSum((n - (n % 10))//10)
print(sum_total)
digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)
您的函数应返回当前数字加上其余数字的总和:
def digitalSum(n):
if n < 10: return n
return n % 10 + digitalSum(n // 10)
print digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)
为完整起见,您还可以处理负数:
def digitalSum(n):
if n < 0: sign = -1
else: sign = 1
n = abs(n)
if n < 10: return n
return sign * (n % 10 + digitalSum(n // 10))
print digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)