如果输入是98352,则
(9+8+3+5+2)+(8+3+5+2)+(3+5+2)+(5+2)+(2)=27+18+10+7+2=64
因此输出应为64
我的方法:
将其转换为字符串,求和,然后在删除第一个数字后递归调用。重复直到字符串的长度为0。我正在寻找更好的解决方案。
您可以尝试使用itertools.accumulate
反向求和:
>>> from itertools import accumulate
>>> inp = 98352
>>> sum(accumulate(map(int, reversed(str(inp)))))
64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句