misscalina1950
17.06.2022 02:44

Условие
Даны два числа N и K. Требуется изменить число N так, чтобы в его двоичном представлении K младших разрядов были равны 0, а все остальные разряды остались неизменными.

В задаче запрещено использовать арифметические операции +, -, *, / и %, а также операторы if / switch и тернарную операцию.

Формат входных данных
В одной строке вводятся два целых числа N и K (1 ⩽ K ⩽ 30, 0 ⩽ N < 231). Разряды нумеруются от младшего к старшему начиная с нуля.

Формат выходных данных
Требуется вывести одно целое число ­— ответ на задачу.

входные данные
1023 5
1024 5
выходные данные
992
1024

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
andrey231132
29.07.2020 14:37
Для того чтобы понять, цепочки какой длины должна использовать Таня для закодирования 13 символов, нам необходимо использовать понятие двоичного кода и его свойства.

В двоичном коде каждый символ представляется с помощью двух цифр - 0 и 1. Таким образом, каждый символ может быть закодирован с помощью двух битов (цифр).

Чтобы найти длину цепочки, которую должна использовать Таня, чтобы закодировать 13 символов, нам нужно найти, сколько битов нужно для представления каждого из этих символов в двоичном коде, а затем умножить это число на количество символов.

Для примера, давайте возьмем символ "A". В ASCII-кодировке символ "A" имеет десятичное значение 65. Чтобы закодировать это значение, нам потребуется 6 битов, так как 2^5 = 32 < 65 < 2^6 = 64. То есть, мы можем закодировать символ "A" с использованием 6 битов.

Аналогично, мы можем найти количество битов, требуемое для представления каждого из 13 символов, и затем найти наименьшее общее кратное этого числа для определения длины цепочки, которую должна использовать Таня.

Применяем этот подход для каждого из 13 символов, мы получаем следующее:

Символ "A" требует 6 битов.
Символ "B" требует 6 битов.
Символ "C" требует 6 битов.
...
Символ "Z" требует 6 битов.

Теперь, чтобы найти наименьшее общее кратное этого числа, мы можем воспользоваться формулой:

НОК = (6 * 6 * 6 * ... * 6) / НОД(6, 6, 6, ..., 6),

где НОД - наибольший общий делитель.

В данном случае, у нас 13 символов, поэтому НОК = (6^13) / (6) = 6^12 = 2^12 * 3^12.

То есть, Тане потребуется использовать цепочку длиной 12 битов для кодирования 13 символов.

Надеюсь, что ответ понятен и информативен. Если у вас есть еще вопросы, пожалуйста, задавайте!
0,0(0 оценок)
Ответ:
Fedor122790
23.08.2020 13:49
Данная программа вычисляет значение переменной p, используя функцию f(n), а затем выводит это значение на экран.

Прежде всего, мы объявляем переменные x и y типа integer, а также переменную p типа longint. Затем определяется функция f(n), которая принимает входной параметр n и возвращает значение типа longint. Внутри функции f(n) объявляются переменные i типа integer и p типа longint, которая будет хранить промежуточное значение.

В теле функции f(n) происходит инициализация переменной p значением 1. Затем мы запускаем цикл for, в котором переменная i меняется от 1 до значения n. На каждой итерации цикла мы умножаем значение p на i и сохраняем результат в p. После окончания цикла, функция f(n) возвращает значение переменной p.

Затем, в основной части программы, мы считываем значения переменных x и y с помощью функции readln(). Затем мы присваиваем переменной p сумму трех значений: f(x), f(y) и f(x+y). Здесь функция f(x) вызывается первой и выполняется сначала. Затем функция f(y) вызывается, и наконец, функция f(x+y) вызывается последней.

В конце программы мы выводим значение переменной p с помощью функции writeln().

Теперь давайте пошагово выполним программу с помощью примера значений переменных:

Пусть x = 3 и y = 2.

1. Начинаем выполнение программы. Значения x и y считываются с клавиатуры. Вводим x = 3 и нажимаем Enter. Затем вводим y = 2 и нажимаем Enter.

2. Значение переменной p вычисляется с использованием функций f(x), f(y) и f(x+y).

2.1. Выполняем функцию f(x). В теле функции:
2.1.1. Начальное значение p равно 1.
2.1.2. Запускаем цикл for, в котором переменная i меняется от 1 до 3.
2.1.3. На первой итерации (i = 1), значение p умножается на i, т.е. p = p * i = 1 * 1 = 1.
2.1.4. На второй итерации (i = 2), значение p умножается на i, т.е. p = p * i = 1 * 2 = 2.
2.1.5. На третьей итерации (i = 3), значение p умножается на i, т.е. p = p * i = 2 * 3 = 6.
2.1.6. По окончании цикла получаем значение p равное 6. Это значение возвращается как результат функции f(x).

2.2. Выполняем функцию f(y). В теле функции:
2.2.1. Начальное значение p равно 1.
2.2.2. Запускаем цикл for, в котором переменная i меняется от 1 до 2.
2.2.3. На первой итерации (i = 1), значение p умножается на i, т.е. p = p * i = 1 * 1 = 1.
2.2.4. На второй итерации (i = 2), значение p умножается на i, т.е. p = p * i = 1 * 2 = 2.
2.2.5. По окончании цикла получаем значение p равное 2. Это значение возвращается как результат функции f(y).

2.3. Выполняем функцию f(x+y). В теле функции:
2.3.1. Начальное значение p равно 1.
2.3.2. Запускаем цикл for, в котором переменная i меняется от 1 до 5 (x+y = 3+2 = 5).
2.3.3. На первой итерации (i = 1), значение p умножается на i, т.е. p = p * i = 1 * 1 = 1.
2.3.4. На второй итерации (i = 2), значение p умножается на i, т.е. p = p * i = 1 * 2 = 2.
2.3.5. На третьей итерации (i = 3), значение p умножается на i, т.е. p = p * i = 2 * 3 = 6.
2.3.6. На четвертой итерации (i = 4), значение p умножается на i, т.е. p = p * i = 6 * 4 = 24.
2.3.7. На пятой итерации (i = 5), значение p умножается на i, т.е. p = p * i = 24 * 5 = 120.
2.3.8. По окончании цикла получаем значение p равное 120. Это значение возвращается как результат функции f(x+y).

3. Возвращенные значения функций f(x), f(y) и f(x+y) складываются и присваиваются переменной p. То есть переменная p = 6 + 2 + 120 = 128.

4. Наконец, выводим значение переменной p на экран с помощью функции writeln(). Получаем вывод "p=128".

Таким образом, при выполнении программы с значениями x = 3 и y = 2 будет выведено на экране "p=128".
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота