Нужно разобрать строку sum += (i / 2) ? i : 0; как работает это условие и как его заменить через оператор if
Код:
#include "pch.h"
#include <iostream>
int main()
{
int n, sum = 0;
std::cin >> n;
for (int i = 2; i <= n; i = i +2)
{
sum += (i / 2) ? i : 0;
}
std::cout << sum;
return (0);
}
sum += (i / 2) ? i : 0;
Прибавить к sum, если значение i/2 ненулевое, число i, в противном случае - 0:
if (i/2) sum += i;
(поскольку в ветви else ничего не меняется - ее просто отбрасываем...)
Только вот смысла в этом - никакого. Так как для вашего цикла i/2 всегда больше нуля - так что
for (int i = 2; i <= n; i = i +2)
{
sum += (i / 2) ? i : 0;
}
С легкостью переписывается как
for (int i = 2; i <= n; i = i +2)
{
sum += i;
}
Или еще проще, с учетом, что изначально sum равно 0:
sum = (n/2)*(1+n/2);
Вариант попроще:
if (i > 1) sum += i;
но поскольку цикл начинается с двойки, то можно условие вообще не проверять.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости