用递归查找最后一位数字总和
我正在尝试创建一个函数,该函数将对所有数字求和
并返回汇总数字的总和。
例如:
对于输入getNumValue(1589)
的输出将是:5
监守:1 + 5 + 8 + 9 = 23
和2 + 3 = 5
因此,输出将是5
由于我们不能将其分割成多个数字。
我确实设法创建了一个总结数字的递归函数:
def getNumValue(number: int):
if number == 0:
return 0
return (number % 10 + getNumValue(int(number / 10)))
但我似乎无法将它用于我的事业。
顺便说一句,
我不想使用任何字符串
而且我正在尝试使用递归到目前为止没有运气。
我敢打赌,这是一个我不熟悉的已知数学问题。
有什么建议吗?
回答
更短:
def getNumValue(number: int): return ((number-1) % 9) + 1
数字和总是与原始十进制数处于相同的余数类 mod 9 中,这递归适用,因此将其减少到一位就是除以 9 的余数。
移位 by1只是服务于剩余类0由 表示的目的9。