我再次在Project Euler上工作,這次問題#4。這個腳本的要點是找到兩個三位數字的最大回文產品。我認爲解決這個問題相當簡單,但我得到的答案太低。更具體地說,我得到580085,答案是906609.這個簡單的Python腳本爲什麼會顯示不正確的答案?
有人能告訴我這是什麼不對?
#!/usr/bin/env python
# encoding: utf-8
"""
P4.py
Created by Andrew Levenson on 2010-06-29.
Copyright (c) 2010 __MyCompanyName__. All rights reserved.
"""
import sys
import os
def main():
for x in range(100, 1000):
for y in range(100, 1000):
z = str(x * y)
s = str(z[::-1]) # Reverse z
if z == s:
t = z
print t
if __name__ == '__main__':
main()
項目歐拉的要點是不是要自己滿意地找出答案? – wlashell 2010-06-30 01:30:04
是的,但這不是解決問題的方法,因爲我已經在Perl中完成了這個任務。這是關於如何在Python中做到這一點,與我當時的做法不同。 :) – Andy 2010-06-30 01:35:18
順便說一句:如果將第二個循環更改爲'for範圍(x,1000)'中的y,則可以完成一半的工作,並且沒有理由導入sys和os。 – 2010-06-30 01:54:42