我再次在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