回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我相信这个问题已经被问了很多,但我已经查过其他论坛,并试图解决这个问题,这似乎没有帮助。我在想有一个溢出问题,但我不记得该怎么解决它了。我花了很长一段时间来编写代码(我的错在这里),所以我正在尝试一些问题来帮助我重新回到正常的状态。所以,只是想知道到底出了什么问题。当我尝试<code>n = 1000</code>时,答案是错误的,但是小于这个数字的数字似乎是正确的。因为大数字行不通,我认为这是一个整数溢出。在</p>
<pre><code>def n_number():
n = raw_input("Enter a max number: ")
try:
int(n)
return n
except ValueError:
print 'Value is not an integer'
exit(1)
# 'function that will add multiples of 3 and 5 that are less than the given value, n.'
def sum_multiplies(n):
sum = long(0)
counter3, counter5 = int(1),int(1)
value3 = 3*counter3
value5 = 5*counter5
while True:
# 'sums of multiples of 5\'s less than n'
if value5<int(n):
sum+= value5
counter5+=1
value5 = 5*counter5
# 'sums of multiples of 3\'s less than n'
if value3<int(n):
sum+= value3
counter3+=1
value3 = 3*counter3
else:
break
print "sum: %s" %sum
print "counter3: %s" %counter3
print "counter5: %s" %counter5
def main():
'max number is in n'
n = n_number()
sum_multiplies(n)
if __name__ == "__main__":
main()
</code></pre>