Python - 在大量中添加数字失败



我正在处理一些代码,将数字的所有数字相加并打印出总和:

number = #some big 50+ bit number
sum = 0
while number != 0:
sum += number % 10
number = int(number/10)
print(sum)

我认为这是一个非常巧妙的解决方案,但是当我添加打印语句进行检查时,当数字非常大时,它没有正确划分。我认为因为我使用的是python 3.8,所以我可以拥有任意大的数字。是不是这样,还是我问错了问题?

我尝试将number = int(number/10)替换为number = math.trunc(number/10)number = math.floor(number/10),并且两者都得到了相同的结果

/运算符执行浮点除法。整数除法需要//。因此,请使用:

number = #some big 50+ bit number
s = 0
while number != 0:
s += number % 10
number = int(number//10)
print(s)

划分为浮点数可能不起作用,因为您会失去精度。

你可以试试这种方式。将数字转换为字符串并循环字符串

number = # big number
S = 0
for x in str(number):
S += int(x)
print(S)

最新更新