Project Euler Spoilers, # 001 - PHP суммы - PullRequest
0 голосов
/ 10 июля 2011

Я не могу попросить помощи на их форумах, но я занимаюсь этим уже 3 часа. Спойлеры ниже Я не понимаю, что я делаю не так.Вопрос в следующем:

Если мы перечислим все натуральные числа ниже 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<br />";
        $f += 5;
    }
    else
    {
        $total += $t;
        echo "Five: $f, Three: $t = $total<br />";
    }
}

Ответ: 233168.Где моя ошибка?

Ответы [ 2 ]

1 голос
/ 10 июля 2011

Вы считаете числа, которые делятся на 3 и 5 дважды .

0 голосов
/ 10 июля 2011

Предположим, что S (3) обозначает сумму чисел, кратных 3, а S (5) обозначает сумму чисел, кратных 5, до заданного числа n, тогда сумма чисел, делимых на 3 или 5, определяется как

* 1002.* S (3 U 5) = S (3) + S (5) - S (3 ∩ 5), где S (3 ∩ 5) обозначает сумму тех чисел, которые делятся на 3 и 5.

ВВ вашем случае вы вычисляете S (3 U 5) = S (3) + S (5) и, следовательно, получаете неправильный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...