Как работает % в выводе четных чисел
но я не понимаю, как работает эта строчка if(num % 2 == 0) — я знаю, что % это остаток от деления, но все равно не могу понять как это работает.
Отслеживать
68k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак
задан 8 ноя 2021 в 12:25
1 1 1 серебряный знак 1 1 бронзовый знак
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
% остаток от деления
четное число можно записать как x = 2 * a + 0 , остаток от деления на 2 в данном случае будет 0
нечётное число можно записать так x = 2*a + 1 , остаток от деления на 2 в данном случае будет 1
x % 2 == 0 — четное число
x % 2 == 1 — нечётное число
Аналогично проверяется чётность любого числа с любым (кроме 0):
x % y == 0 — x кратно y
Как вывести нечетные числа в javascript
Если числа, среди которых нужно найти нечетные, содержатся в массиве, то можно воспользоваться методом filter() , который позволяет отфильтровать массив по заданному нами критерию:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // функция-предикат isOdd() возвращает true, если переданное в неё число нечётное const isOdd = (num) => num % 2 !== 0; // метод filter() возвращает новый массив, состоящий из только из тех элементов первоначального массива, на которых функция-колбэк вернёт true const odd = numbers.filter(isOdd); console.log(odd); // => [1, 3, 5, 7, 9]
02 августа 2022
Чтобы вывести нечётные числа, нужно воспользоваться циклом и внутри него проверять чётность числа с помощью оператора получения остатка от деления % на 2.
Например, так выглядит вывод нечётных чисел до 10:
for (let i = 1; i 10; i += 1) if (i % 2 !== 0) console.log(i); > >
13 мая 2023
А как сделать, чтобы выводился ответ, когда все числа массива нечетные?
Функция должна проверять, какие числа четные, объясните почему не работает?
Потому что первый же return прерывает выполнение функции.
По сути ваша функция проверяет являются ли все числа в массиве четными.
Если в массиве встретится хотя бы одно нечетное число, то она вернет false.

Сергей delphinpro @delphinpro Куратор тега JavaScript
Ирина, тогда функция будет проверять являются ли все числа в массиве нечетными

Сергей delphinpro @delphinpro Куратор тега JavaScript
Функция должна проверять, какие числа четные
ваш вопрос подразумевает проверку каждого числа. А функция возвращает булево значение (да/нет). Как можно ответить на несколько проверок одним утверждением «да» или «нет»?
Вы бы поподробнее объяснили что вам нужно и в каком виде требуется результат.
Решения вопроса 0
Ответы на вопрос 2

otdameskapizm @otdameskapizm
Помог ответ? Отметь решением.
Ваша функция не проверяет, какие числа четные — она отвечает на вопрос, все ли числа массива четные
Если нужно вывести четные числа, то попробуйте хотя бы так:
const isEven = (arr) => < for (const num of arr) < if (num % 2 === 0) < console.log(num); >> >;
Ответ написан более года назад
Нравится 1 5 комментариев
Karli @Karli Автор вопроса
не так сформулировала вопрос, она и должна проверять, то почему не работает?

otdameskapizm @otdameskapizm
Так Вы вызываете не ту функцию. Вам надо вызывать isTrue, а у Вас в коде вызов func(arr)
Karli @Karli Автор вопроса
otdameskapizm, выдает ошибку

otdameskapizm @otdameskapizm
Поставьте проверку условия, не (elem % 2 === 1), а (elem % 2 !== 0). В Вашем случае происходит проверка наличия числа в массиве, которое без остатка делится на 1. А нужно проверять, чтобы числа без остатка делились на 0. Если после этой проверки выскочит false, то значит, что у Вас в массиве есть число, которое не делиться на 0 без остатка — нечетное.
function isTrue(arr) < for (let elem of arr) < if (elem % 2 !== 0) < return false; >> return true; >

Поставьте проверку условия, не (elem % 2 === 1), а (elem % 2 !== 0). В Вашем случае происходит проверка наличия числа в массиве, которое без остатка делится на 1. А нужно проверять, чтобы числа без остатка делились на 0. Если после этой проверки выскочит false, то значит, что у Вас в массиве есть число, которое не делиться на 0 без остатка — нечетное.
Что за ересь ты тут написал?
Сергей Соколов @sergiks Куратор тега JavaScript
Нужно чётко формулировать желания. На английском )
У массивов есть встроенные методы, которыми удобно решать задачи.
Хочется узнать, все ли элементы массива чётные? «Все» — «every»
arr.every( item => (item & 1) === 0 )
Узнать, какие элементы массива чётные? Что в результате получить.. Только четные элементы – значит, отфильтровать искомое, «filter»: arr.filter( item => (item & 1) === 0 )
Функциям хорошо бы давать понятные названия. В примерах выше одна и та же функция определяет четность очередного item’а. Можно её сделать отдельной функцией: const isEven = num => (num & 1) === 0; тут проверяется последний бит числа, если он 0 , значит, число четное. Годится только для небольших 32-битных целых.
Примеры станут лаконичнее:
arr.every(isEven) // false arr.filter(isEven) // [2, 4, 6, 8, 10]
Lenoc / Task.2.15.1.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| for ( var i = 2 ; i |
| alert ( i ) ; |
| > |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Footer
© 2023 GitHub, Inc.
You can’t perform that action at this time.
