我正在尝试创建一个将所有数字相加的函数
并将返回汇总数字的总和。
示例:
对于输入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)))
但我似乎无法将它用于我的事业。
顺便说一句
我不想使用任何字符串
到目前为止,我正在尝试使用递归。运气不好。
我打赌这是一道我不熟悉的已知数学题。
有什么建议吗
您可以检查数字是否大于9。如果是,则再次调用该函数:
您可以在返回答案之前进行最后检查
输出:
甚至更短:
数字和始终与原始十进制数位于同一个余数类mod 9中,这是递归应用的,因此将其减少到一个数字就是除以9的余数
通过
1
的移位只是为了使剩余类0
由9
表示相关问题 更多 >
编程相关推荐