【发布时间】:2011-12-24 03:32:50
【问题描述】:
首先,我为我的不准确词汇道歉。我是一个绝对零基础的初学者。无论如何,我正在尝试解决这个问题: http://projecteuler.net/problem=1
简而言之,我正在尝试编写一个脚本,该脚本将找到 1000 以下的所有 3 或 5 的倍数之和。
我的(非常基本的)方法是使用这个程序:
##Multiples of 3
x = range(3, 1000, 3)
##Multiples of 5
y = range(5, 1000, 5)
a = sum(x)
b = sum(y)
n = a + b
print n
我意识到这是错误的,因为像 15 这样的数字包含两次(它是 5 和 3 的倍数)。 那么有没有办法解决这个问题,还是我从一个完全错误的角度来解决这个问题? 还是在尝试解决这个问题之前我需要学习更多? 如果这在之前的帖子中已经解释过,我也很抱歉,但我环顾了一下。
【问题讨论】:
-
需要保留订单吗?
-
因为我只需要总和,我很确定顺序不会影响我的结果。
-
啊,对。我没有足够重视这个问题。
set应该可以正常工作。 -
解决问题后,请务必阅读未锁定的论坛以获取此问题的答案。有比利用
set行为更优雅、更有效的方法。 -
哇。我检查了其他人的解决方案,但我缺乏经验来理解其中的任何一个。他们都在使用我从未听说过的功能。解决方案越复杂越好吗?我想这些类型的解决方案更好地展示了你的能力,对吧?好吧,我现在会满足于我的简单。