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