Как вывести сумму нечетных чисел циклом от 11 до 30 do-while на PHP
Так как мы начинаем с нечётного, можно идти с шагом 2:
$sum = 0;
$cur = 11;
// if ($cur % 2 === 0) $cur++;
do {
$sum += $cur;
} while (($cur += 2) < 30);
echo $sum;
Однако, скорее всего, от вас ждут проверки в теле цикла:
$sum = 0;
$cur = 11;
do {
if ($cur % 2 === 1) {
$sum += $cur;
}
} while (++$cur < 30);
echo $sum;
Если говорить о чисто арифметическом решении, нужно вспомнить, что сумма n нечётных чисел есть n2.
Стало быть сумма нечётных от i до k = k2 - (i-1)2
function sum_odd($a, $b) {
// приходится нормализовать входные данные(получить номера нечётных)
$a = floor($a/2);
$b = floor(($b+1)/2);
return $b*$b - $a*$a;
}
echo sum_odd(11, 29), "\n"; // 200
echo sum_odd(11, 30), "\n"; // 200
echo sum_odd(10, 30), "\n"; // 200
echo sum_odd(10, 29), "\n"; // 200
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю проверку на палиндром, но с русскими символами, что то не такПочему кодировка кривая? Кто то подскажет ?
Учусь делать самую простую систему сообщений, между двумя пользователями, где на сообщение можно ответить только 1 раз и это сообщение и ответ,...
Код из документацииПочему при создании связей Many to many создается 2 записи? Не могу сделать взять между USER и NEWS хочу сделать общий comments между...
Если вывести весь массив то все ок, а 1 символ то получаю кракозябруКак исправить? И почему так происходит