Помогите понять эту строчку, пожалуйста. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ for (i = (m & 1) == 1 ? m : m + 1; i <= n; i += 2) { sum += i * i; //*= - умножение с присваиванием }
? m : m + 1; i <= n; i += 2) { sum += i * i; //*= - умножение с присваиванием }
Судя по всему, здесь в цикле складываются квадраты всех нечетных чисел от m до n включительно.m & 1 - это битовая конъюнкция. Результатом будет 1, если m нечетное, и 0, если m - четное (то есть, содержит или не содержит соответствующий разряд)Выражение вида T ? X : Y, где T - логическое высказывание, принимает значение X, если T истинно, и Y, если T ложно.Соответственно, i = (m & 1) == 1 ? m : m + 1 означает, чтоесли m нечетное, то i = mесли четное, i = m+1 (то есть, первое нечетное число после m)i += 2 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.
Также наши пользователи интересуются:
У скринці а чорних і b білих кульок.Яка ймовірність того, що одна навмання взята зі Название сказки. красавица и ---довище. имя одного из гномов Вор---н место куда Ма
⭐⭐⭐⭐⭐ Лучший ответ на вопрос «Помогите понять эту строчку, пожалуйста. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ for (i = (m & 1) == 1 » от пользователя МАША ВАСИЛЕНКО в разделе Информатика. Задавайте вопросы и делитесь своими знаниями.
Открой этот вопрос на телефоне - включи камеру и наведи на QR-код!