Условие
Даны два числа N и K. Требуется изменить число N так, чтобы в его двоичном представлении K младших разрядов были равны 0, а все остальные разряды остались неизменными.
В задаче запрещено использовать арифметические операции +, -, *, / и %, а также операторы if / switch и тернарную операцию.
Формат входных данных
В одной строке вводятся два целых числа N и K (1 ⩽ K ⩽ 30, 0 ⩽ N < 231). Разряды нумеруются от младшего к старшему начиная с нуля.
Формат выходных данных
Требуется вывести одно целое число — ответ на задачу.
входные данные
1023 5
1024 5
выходные данные
992
1024
Если число в системе с основанием х оканчивается на 22, то
х больше или равно 0 , потому что в системах с меньшим основанием нет цифры 3
это число можно представить в виде А*Х2=2Ч=2 , где А– целое неотрицательное число
определим наибольшее возможное А с учетом условия х больше или равно 0. Из уравнения А*Х2=2Ч=2следует А=84-2Х/Х2
очевидно, что чем меньше Х, тем больше А, поэтому значениене превышает А МАКС =84-6/3^2=8ЦЕЛЫX З/2.
здесь мы подставили X=3– наименьшее допустимое значение [
остается перебрать все допустимые значения A (от 0 до A MAX =8), решая для каждого из них уравнение A*X2+2X+2=86
относительно X , причем нас интересуют только натуральные числа х больше или равно 0
получаем
при : A=0 X=42
при : A=1 решения – не целые числа
при :A=2 X =62
при :A=3.4.5.6.7.8 решения – не целые числа
таким образом, верный ответ: 6, 42.
10111₂ + 18₁₀ = 56ₓ
Для начала переведём всё в десятичную систему счисления:
1⁴0³1²1¹1⁰₂= 1 · 2⁴ + 0 + 1 · 2² + 1 · 2¹ + 1 · 2⁰ = 16 + 4 + 2 + 1 = 23₁₀
Запишем уравнение в новом виде:
23₁₀ + 18₁₀ = 56ₓ
41₁₀ = 56ₓ
Представим 56 в системе счисления x в развёрнутом виде:
5¹6⁰ₓ = 5 · x¹ + 6 · x⁰ = 5x + 6
Запишем уравнение в новом виде:
41₁₀ = 5x + 6
Перенесём иксы влево, а числа вправо:
-5x = 6 - 41
-5x = -35
x = 7 - система счисления
Проверка56₇ переведём в 10-ю систему счисления:
5¹6⁰₇ = 5 · 7¹ + 6 · 7⁰ = 35 + 6 = 41₁₀
23₁₀ + 18₁₀ = 41₁₀
41₁₀ = 41₁₀
ответ7