欧拉扰流器项目#001-PHP总和

欧拉扰流器项目#001-PHP总和,php,math,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 "

我不能在他们的论坛上寻求帮助,但我已经在这里呆了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 />";
    }
}
for($total=0,$f=5,$t=3;$t<1000;$t+=3){
如果($f<1000)
{
$total+=$f+$t;
回声“五:$f,三:$t=$total
”; $f+=5; } 其他的 { $total+=$t; 回声“五:$f,三:$t=$total
”; } }

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

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

假设s(3)表示可被3整除的数字之和,s(5)表示可被5整除的数字之和,直到给定的数字n,那么可被3或5整除的数字之和由

S(3u5)=S(3)+S(5)-S(3∩ 5) 其中S(3∩ 5) 表示可被3和5整除的数字之和


在您的例子中,您正在计算S(3u5)=S(3)+S(5),因此得到了错误的答案。

怎么会这样?例如,$total+=$f+$t?$f=15和以后的$t=15—您将添加15两次。啊,所以您不是说每次添加两次。就在他们在下议院的时候。好吧,这是有道理的!