Учитывая число n, напишите функцию, которая возвращает true, если n делится на 9, иначе false. Самый простой способ проверить делимость n на 9 — это сделать n% 9.
Другой метод состоит в суммировании цифр n. Если сумма цифр кратна 9, то n кратна 9.
Вышеуказанные методы не являются побитовыми операторами и требуют использования% и /.
Побитовые операторы обычно быстрее, чем по модулю и операторам деления. Ниже приведен метод побитового оператора для проверки делимости на 9.
|
Джава
|
python3
|
C #
|
PHP
|
Выход:
0 9 18 27 36 45 54 63 72 81 90 99
Как это работает?
n / 9 можно записать в терминах n / 8, используя следующую простую формулу.
n/9 = n/8 - n/72
Поскольку нам нужно использовать побитовые операторы, мы получаем значение floor (n / 8), используя n >> 3, и получаем значение n% 8, используя n & 7 . Нам нужно написать вышеприведенное выражение в терминах floor (n / 8) и n% 8 .
n / 8 равно «Этаж (n / 8) + (n% 8) / 8» . Запишем приведенное выше выражение в терминах floor (n / 8) и n% 8
n/9 = floor(n/8) + (n%8)/8 - [floor(n/8) + (n%8)/8]/9 n/9 = floor(n/8) - [floor(n/8) - 9(n%8)/8 + (n%8)/8]/9 n/9 = floor(n/8) - [floor(n/8) - n%8]/9
Из приведенного выше уравнения n кратно 9, только если выражение floor (n / 8) — [floor (n / 8) — n% 8] / 9 является целым числом. Это выражение может быть только целым числом, если подвыражение [floor (n / 8) — n% 8] / 9 является целым числом. Подвыражение может быть только целым числом, если [floor (n / 8) — n% 8] кратно 9 . Таким образом, проблема сводится к меньшему значению, которое можно записать в терминах побитовых операторов.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме
Рекомендуемые посты:
- Проверьте, делится ли число на 17, используя побитовые операторы
- Проверьте, делится ли число на 8, используя побитовые операторы
- Проверьте, является ли битовое И для числа с любым подмножеством массива нулевым или нет
- Проверьте, является ли число положительным, отрицательным или нулевым, используя битовые операторы
- Битовые операторы в C / C ++
- Проверьте, является ли очень большое число данной формы кратным 3.
- Напишите эффективный метод, чтобы проверить, является ли число кратным 3
- Каковы различия между побитовыми и логическими операторами AND в C / C ++?
- Побитовые операторы сдвига вправо в Java
- Переключить регистр строки с помощью побитовых операторов
- Русский крестьянин (умножить два числа с помощью побитовых операторов)
- Преобразование в регистр (нижний в верхний и наоборот) строки с использованием операторов BitWise в C / C ++
- Общее количество пар в массиве такое, что битовое И, битовое ИЛИ и битовое XOR младшего бита равно 1
- Проверьте, является ли побитовое И из N чисел четным или нечетным
- Проверьте, является ли побитовое ИЛИ из N чисел четным или нечетным
0.00 (0%) 0 votes