OverflowerError:int太大,无法转换为float

eqfvzcg8  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(502)

我想找到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)
eni9jsuy

eni9jsuy1#

干得好:

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

ssm49v7z2#

对于这个问题,您根本不需要使用浮点数。
你可能不是有意的,但无意中用了它们

r = r / 10

因为这是浮点除法运算符。
要从数字中删除最后一位数字,请使用整数除法:

r = r // 10

相关问题