该代码应用于查找整数的总和。当我运行它时,计算机只是处理了一段时间,然后什么也没有发生
def sum_of_digits(integer):
numlist = list(str(integer))
if len(numlist) == 0:
result = 0
elif len(numlist) == 1:
result = numlist[0]
else:
midPoint = len(numlist) // 2
result = sum_of_digits(numlist[:midPoint]) +
sum_of_digits(numlist[midPoint:])
print(result)
return result
sum_of_digits(123456)
最佳答案
此答案不会将数字转换为字符串(或其他可迭代的数字),然后再转换回数字。
def sum_of_digits (n: int, sum = 0) -> int:
if n < 10:
return n + sum
else:
return sum_of_digits (n // 10, sum + n % 10)
print(sum_of_digits(1)) # 1
print(sum_of_digits(12)) # 3
print(sum_of_digits(123)) # 6
print(sum_of_digits(1234)) # 10
print(sum_of_digits(12345)) # 15