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

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

我想找到10000到100000之间的所有回文数字,但我得到了这个错误,我读过类似问题的解决方案,但不满意

  1. for i in range(10000, 100000):
  2. r=i
  3. s=0
  4. k=0
  5. while r>0:
  6. d=r%10
  7. s=(s+(d*(10**k)))
  8. k+=1
  9. r=r/10
  10. if s==i:
  11. a.append(i)
eni9jsuy

eni9jsuy1#

干得好:

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

ssm49v7z2#

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

  1. r = r / 10

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

  1. r = r // 10

相关问题