Помогите осознать эту строку, пожалуйста. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ for (i =

Помогите осознать эту строчку, пожалуйста. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ
for (i = (m amp; 1) == 1 ? m : m + 1; i lt;= n; i += 2)

sum += i * i; //*= - умножение с присваиванием

Задать свой вопрос
1 ответ
Судя по всему, тут в цикле складываются квадраты всех нечетных чисел от m до n включительно.

m amp; 1 - это битовая конъюнкция. Результатом будет 1, если m нечетное, и 0, если m - четное (то есть, содержит либо не содержит соответствующий разряд)

Выражение вида T ? X : Y, где T - логическое выражение, воспринимает значение X, если T подлинно, и Y, если T неправильно.

Соответственно, i = (m amp; 1) == 1 ? m : m + 1 значит, что
если m нечетное, то i = m
если четное, i = m+1 (то есть, 1-ое нечетное число после m)

i += 2 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт