我一直在試圖解決問題55項目歐拉(http://projecteuler.net/problem=55) 而現在我覺得我有答案,我遇到一個問題。我不想要問題55的解決方案,僅僅是我做錯了什麼。
這裏是我的代碼:(我不認爲你需要的所有的話)
t=0
lychrel=0
called=0
def iteratepal(n):
global t
global called
called+=1
b = int(''.join(reversed(str(n))))
#print ("n =",n,"\nb =",b,"\nb+n =",b+n,"\n")
if ispal(b+n) or ispal(n):
t=0
return False
if t<50:
t+=1
iteratepal(b+n)
else: # Here's the prob
t=0 # this block is executed (because it prints "yea")
print("yea") # but it doesn't return True!
return True # you can try it yourself (even in the interpreter)
def ispal(n):
if n == int(''.join(reversed(str(n)))):
return True
return False
print(iteratepal(196))
for i in range(0,200):
if iteratepal(i)==True:
lychrel+=1
print(i,"is Lychrel!")
else:
print(i,"is not a Lychrel!")
print(lychrel)
感謝您的幫助,我這個真糊塗。
你永遠需要在'if'語句來測試'== TRUE'。 –
@Martijn彼得是的,忘了那個。它之前是假的,經過一段時間我改變了它 –
在這種情況下,測試'False'的普通python方法是使用'if not something:'。 –