2011-07-10 48 views
1

我不能在他们的论坛上寻求帮助,但我已经在这里3个小时了。 扰流板低于我不明白我做错了什么。现在的问题是:项目欧拉破坏者,#001 - PHP总和

如果我们在下面列出10是3或5的倍数的所有自然数,我们得到了3,5,6和9这倍数的总和为23 找到的总和所有3或5的倍数低于1000.

这是我的等式。

for($total = 0, $f = 5, $t = 3; $t < 1000; $t+=3){

if($f < 1000) { $total += $f + $t; echo "Five: $f, Three: $t = $total
"; $f += 5; } else { $total += $t; echo "Five: $f, Three: $t = $total
"; } }

答案是:233168。我的错误在哪里?

回答

1

您正在计算可被3和5整除的数字两次

+0

是怎么回事? $总+ = $ f + $ t? –

+0

$ f = 15以及后来的$ t = 15例如 - 您将添加15次两次。 – BrokenGlass

+0

ahhh所以你不是说每次都加两次。就在他们在公共场所时。好的,这是有道理的! –

0

假设S(3)表示整除数之和由3和S(5)表示由5整除数之和,直到给定数量n,则通过3或5整除数的总和由

给出S(3 U 5)= S(3)+ S(5)-S(3∩5) 其中S(3∩5)表示3和5均可被整除的那些数的总和。

在你的情况,你正在计算S(3 U 5)= S(3)+ S(5),因此得到错误的答案。