Решая эту задачу, постарался не только отработать конструкции языка PHP, но и сделать небольшой онлайн-калькулятор, позволяющий проверить ваши вычисления.
Каждый следующий элемент ряда Фибоначчи получается при сложении двух предыдущих. Начиная с 1 и 2, первые 11 элементов будут:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Найдите сумму всех четных элементов ряда Фибоначчи, которые не превышают четыре миллиона.
1 <?php 2 $first_fib = 1; 3 $second_fib = 2; 4 $max_fib = 4000000; 5 $answer = 0; 6 while ($second_fib <= $max_fib) { 7 if ($second_fib % 2 == 0 ) { 8 $answer += $second_fib; 9 } 10 $next_fib = $first_fib + $second_fib; 11 $first_fib = $second_fib; 12 $second_fib = $next_fib; 13 } 14 echo 'Answer = ' . $answer; 15 ?>
Во-первых, нужно помнить, что согласно заданию, и самому определению чисел Фибоначчи: “следующий элемент получается при сложении двух предыдущих”.
Во-вторых, четное число делится на 2 без остатка:
Ну и главное, не нужно вычислять каждый элемент ряда каждый раз заново.
Поэтому как только будет получено число Фибоначчи, следующее за первыми двумя:
...значения обновляются:
...первое число принимает значение второго:
...второе – третьего (суммы первых двух).
Такой цикл продолжается снова
и снова до тех пор, пока в итоге не дойдет до искомых 4 000 000.
Вы можете предложить свой вариант решения задачи и прислать в виде pull request.
В случае, если вы заметили какие то неточности в статье или хотите предложить какие-либо изменения в верстке этого сайта, вы всегда можете создать pull request в этот проект.
Если у вас есть идеи по CSS-настройкам этого сайта, тогда прочитайте эту статью.