Как проверить число на четность?
Если нужна не четность, а нечетность — соответственно, x % 2 != 0 .
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
ответ дан 7 сен 2011 в 1:54
9,243 1 1 золотой знак 20 20 серебряных знаков 37 37 бронзовых знаков
Говорить TypeError: not all arguments converted during string formatting Несоответствие типов что ли, да?
7 сен 2011 в 2:08
Я так понял, это уже речь о некой модификации моего примера? Тогда, пожалуйста, код в студию — телепаты в отпуске. Приведенная ошибка появляется если в строке было одно число плейсхолдеров (%d и иже с ним), а справа оператору % передали меньше.
7 сен 2011 в 2:30
Похоже, догадался о чем речь. Если на x % 2 оно так ругается, то x — строка, так что, да, проблема в типах. Для них оператор % имеет другой, не связаный с остатком от деления, смысл.
Определение четности числа в Python
Для того чтобы определить четное число введено или нет в Python необходимо воспользоваться оператором «Остаток деления» и написать условие.
Оператор вычисления остатка от деления
В языке программирования Python, также как и в других языках программирования, есть команда — оператор (%), который вычисляет остаток от деления на число. Приведем примеры:
4 % 2 >>>0 5 % 2 >>>1 20 % 10 >>>0 25 % 10 >>>5
При делении числа 4 на 2 — остаток 0. При делении числа 5 на 2 — остаток 1. При делении числа 20 на 10 — остаток 0. При делении числа 25 на 10 — остаток 5.
Определения четности числа с помощью оператора остатка от деления
Мы знаем, что при делении четного числа на 2 у нас в остатке остается 0. Поэтому для определения четного и нечетного числа можем воспользоваться оператором остатка от деления. Напишем для этого условие:
a = 5 if a % 2 == 0: print('Четное число') else: print('Нечентное число') >>> Нечетное число
В начале присваиваем переменной a число, четность которого хотим проверить. Далее пишем условие: если остаток деления переменной a на 2 равно 0, то вывести на экран «Четное число», в противном случае вывести «Нечетное число».
При запуске написанного кода, мы увидим «Нечетное» число.
Написание функции для определения четности числа
Можем написать функцию, которая на входе будет получать число, а на выходе выводить на экран «Четное число» или «Нечетное число» в зависимости от четности полученного числа.
def even_or_odd(a): if a % 2 == 0: print('Четное число') else: print('Нечентное число') even_or_odd(10) >>> Четное число even_or_odd(11) >>> Нечетное число
Разберем написанный код. В первой строке мы объявляем новую функцию. Назовем её even_or_odd. Функция на входе будет получать одно число. Далее она проверяет это число на остаток от деления на 2 и выводит на печать «Четное число» или «Нечетное число». Условие, которое написано в функции мы рассмотрели уже ранее.
Как видим, определить четность числа — это довольно простая задача, которая быстро решается с помощью оператора остатка от деления (%).
Проверьте, является ли число четным или нечетным, без использования условного оператора
По заданному числу определите, четное оно или нечетное, не используя условный оператор (if-else) или тернарный оператор.
Способ 1: использование массива строк
Идея состоит в том, чтобы использовать оператор по модулю или LSB, чтобы определить, является ли число четным или нечетным. Вместо использования условного оператора для вывода четных/нечетных значений мы можем использовать индекс массива строк, как показано ниже на языке C/C++:
using namespace std ;
string arr [ ] = < "even" , "odd" >;
// используя оператор по модулю
cout << arr [ n % 2 ] ;
using namespace std ;
string arr [ ] = < "even" , "odd" >;
// проверка младшего разряда числа на четность/нечетность
cout << arr [ n & 1 ] ;
// повторное вычитание
while ( n -- && -- n > 0 ) < >
// если `n` равно 0, число четное
// если `n` равно -1, число нечетное
printf ( «%s» , arr [ n + 1 ] ) ;
Способ 2: использование короткого замыкания в логических выражениях
Мы можем воспользоваться короткое замыкание в логических выражениях. Мы знаем, что в логическом AND операция, такая как x && y , y оценивается только в том случае, если x правда. Если x ложно, то y не оценивается, потому что все выражение станет ложным, что можно вывести, даже не оценивая y . Точно так же для логической операции ИЛИ, такой как x || y , y оценивается только в том случае, если x является ложным. Если x верно, то y не оценивается. Это называется коротким замыканием в логических выражениях.
Мы можем применить эту логику для решения данной проблемы. Рассмотрим следующий фрагмент кода:
Сначала проверьте, есть ли n является нечетным или четным. Если n нечетно, первое подвыражение AND становится истинным, а его второе подвыражение printf(«odd») получает оценку. В противном случае, если n четно, первое подвыражение OR станет ложным, а его второе подвыражение printf(«even») получает оценку.
Этот подход продемонстрирован ниже на C:
Как в цикле if C++ обозначить нечетное число? как написать в цикле if нечетное число? if (!i%2) — так?
Уничтожить в массиве? Сдвинуть остальные на их место чтоль?
Источник: Qudion Alpha
Остальные ответы
«в цикле if»- уже само по себе нелепость.
Проверка на нечетность в условном операторе: if(i%2).
А восклицательный знак зачем?
Если число четное, то остаток от деления на 2 будет равен нулю и условие пойдет по ветке else просто и все.
То есть можно записать:
if(i%2) printf(«Число нечетное»); else printf(«Число четное»);
Кстати, если писать так, как писали, то Вы скобки вроде забыли поставить после восклицательного знака.
Да посмотрите в книге по C++ как уничтожаются переменные. Там будет написано больше и понятней. Как определять четность/нечетность числа уже мы показали.
