2017-10-05 10 views
-2

當我試圖解決項目歐拉問題4號,我寫的代碼:Python的MAX()函數和項目歐拉4號

l=[] 
for i in range(100,1000): 
    for j in range (100,1000): 

     a=i*j 
     b=str(a) 
     if b==b[::-1]: 
      l.append(b) 
print(max(l[-10:])) 

答案是906609.但是,當我寫的,而不是max(l[-10:])max(l)結果變成了99999. 然而問題是,列表中的數字是相同的,但爲什麼結果是不同的?

+0

當我用max(l [-10:])執行上面的代碼時,我通過max(l)執行代碼906609 –

+0

。 –

回答

1

你得到的最大原因不是int是因爲比較是在字符串之間。您將字符串附加到列表中。

更換

l.append(b) 

l.append(a) 

得到預期的輸出。

+0

如何在不將類型更改爲字符串的情況下反轉變量? –

+0

@PervizMamedov你在做什麼邏輯上是正確的。只需在列表中添加一個'int'而不是'''str'列表中'''等同於'a'的''。如果你想要一個反轉'int'的邏輯,那需要一些循環邏輯。 – kaza

+0

@PervizMamedov只是嘗試我所建議的,你會知道...... – kaza