【发布时间】:2015-07-15 17:18:46
【问题描述】:
我不知道为什么会出现这种类型的错误。这段代码是关于在特定间隔中查找 kaprekar 数字
def find_kaprekar(p,q):
numbers = []
for i in range(p,q):
str_i = str(i)
if len(str_i) % 2 == 1:
midone = str_i[:int((len(str_i)+1)/2)]
midtwo = str_i[int((len(str_i)+1)/2):]
if int(midone) + int(midtwo) == i**2:
numbers.append(i)
elif len(str_i) % 2 == 0:
midone = str_i[:int(len(str_i)/2)]
midtwo = str_i[int(len(str_i)/2):]
if int(midone) + int(midtwo) == i**2:
numbers.append(i)
if len(numbers) == 0:
print('INVAlID RANGE')
else:
print(numbers)
if __name__ == '__main__':
p = int(input())
q = int(input())
find_kaprekar(p, q)
当我运行它时,我总是得到这个:
if int(midone) + int(midtwo) == i**2:
ValueError: invalid literal for int() with base 10: '
【问题讨论】:
标签: python python-3.x numbers number-theory