这里是我的代码:为什么我得到一个内存错误?
i=int(input("enter your number"))
j=int(input("enter your number"))
if i>j: #making x always greater than y
x=i
y=j
elif i<j:
x=j
y=i
else:
print("invalid")
k=y
cyclelength=[]
while k<=x:
list=[k]
while k!=1:
if(k%2==0):
k=i//2
else:
k=3*k+1
list.append(k)
cyclelength.append(len(list))
k+=1
print(y," ",x," ",max(cyclelength))
我得到以下异常:
Traceback (most recent call last):
File "C:/Python32/uva100.py", line 21, in <module>
list.append(k)
MemoryError
你想在这里做什么? –
'k'永远不会是'1',所有追加内存空间不足。 –
作为一个可读性的一般注释,你应该使用比简单字母更有意义的变量名称(除非处理非常简单和短的算法,或者像在for-loop中使用'i'作为循环变量的一些约定)。它将使未来更容易维护您的代码。 –