OverflowError: int too large to convert to float

OverflowError: int too large to convert to float

我想找到 10000 到 100000 之间的所有回文数字,但出现此错误,我确实阅读了类似问题的解决方案,但并不满意

for i in range(10000, 100000):
    r=i
    s=0
    k=0
    while r>0:
        d=r%10
        s=(s+(d*(10**k)))
        k+=1
        r=r/10
    if s==i:
        a.append(i)

给你:

import numpy as np
a = np.arange(10000, 100000)
boolean_selection = [str(i) == str(i)[::-1] for i in a]
res = a[boolean_selection]

对于这个问题,你根本不需要浮点数。

您可能无意这样做,但不小心在行中使用了它们

r = r / 10

因为这是浮点除法运算符。

要删除数字的最后一位,请使用整数除法:

r = r // 10