我是python的新手,正在从事小型项目:
我正在尝试编写一个程序来计算从1到一百万的整数的数字总和。
我的代码陷入无限循环:
x=0
for num in range(1,1000001):
x=x+1/num
print(round(x,5))
我想要的输出是:
从1到100万的数字总和为27,000,001。
我在做什么错了?
答案 0 :(得分:1)
您可以尝试将digits
转换为string
,然后再转换回int
,然后计算总数
>>> tot = 0
>>> for i in range(1,1000001): # use `xrange` if python2
... tot += sum(int(y) for y in str(i))
...
>>> tot
27000001
或者@Jean-FrançoisFabre建议的单线纸,
>>> sum(sum(map(int,str(i))) for i in range(1000001))
27000001