项目Euler Spoilers,#001 - PHP总和

时间:2011-07-10 05:15:05

标签: php math

我不能在他们的论坛上寻求帮助,但我已经在这里待了3个小时了。 下面的剧透 我不明白我做错了什么。问题是:

  

如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23。   求出1000或以下所有3或5的倍数之和。

这是我制作的等式。

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

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

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

2 个答案:

答案 0 :(得分:1)

您计算的数字可以被3和5 整除

答案 1 :(得分: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),因此得到错误答案。