【发布时间】:2020-05-22 07:54:39
【问题描述】:
如果输入是 98352 那么
(9+8+3+5+2)+(8+3+5+2)+(3+5+2)+(5+2)+(2)=27+18+10+7+2=64
因此输出应该是 64
我的方法:
将其转换为字符串,求和,然后在删除第一个数字后递归调用。并重复直到字符串的长度为0。我正在寻找更好的解决方案。
【问题讨论】:
-
第一个数字出现一次,第二个出现两次,以此类推。无需递归。
-
sum(i*int(digit) for i, digit in enumerate(num, start=1)) -
@pyOliv,它假定
num是字符串;如果您希望它是int,请将其替换为str(num) -
你说得对,我已经删除了我的评论,因为它不相关。谢谢。
标签: python string list algorithm