python - 递归查找最后一位数字总和
问题描述
我正在尝试创建一个函数,它将所有数字相加
并返回汇总数字的总和。
示例:
对于输入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 下的余数。
移位1
仅用于剩余类0
由 表示的目的9
。
推荐阅读
- html - 自动缩进在 WebStorm 中不起作用
- javascript - 检查数组元素是否存在于另一个数组中
- javascript - 如何 .map() 来自 get 请求的 JSON 响应并使用给定索引内的索引来确定表行
- java - 我可以通过参数同步方法吗
- python - Python3:列表到嵌套字典,使用前 12 个列表项作为第二级键
- asp.net-core-signalr - Clients.All、Clients.Caller 和 Clients.Others 抛出 TypeLoadException
- python-3.x - 在 opencv3 中执行 svm.predict() 时,我得到了 Unsupported operand type(s) for -: 'tuple' 和 'int'
- php - Laravel 将数据数组插入数据库
- python - 出现错误:创建 qr 扫描仪时“元组”对象没有属性宽度
- svn - 从 Subversion 构建 Azure DevOps