我正在处理一些代码,将数字的所有数字相加并打印出总和:
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)