Системы счисления

80 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Будем называть числа круглыми, если они содержат в своей записи только цифры 0 и 5. Составим последовательность неотрицательных целых круглых чисел в порядке возрастания: 0, 5, 50, 55, 500, 505 и так далее.

Написать программу, которая находит K-е по порядку в этой последовательности круглое число.

Входные данные
Вводится одно натуральное число K- номер круглого числа в порядке возрастания.

Выходные данные
Программа должна вывести  круглое число с заданным номером.
XOR#39625
Исключающим "или" (XOR) называется булева функция, а также логическая и битовая операция от двух аргументов, результат которой истинен тогда и только тогда, когда один из аргументов истинен, а второй - ложен.
Циклический побитовый сдвиг вправо - операция, при которой младший разряд переносится в начало числа и становится старшим, а все остальные сдвигаются вправо на одну позицию.
К двум 16-битовым числам A и B, записанным в 16-ричной системе счисления, была применена операция исключающего "или", а затем к результату - операция побитового циклического сдвига вправо на K разрядов. Одно из двух исходных чисел было забыто, требуется его восстановить.
Входные данные
в строку через пробел записаны числа A, K и результат X. Числа A и X заданы в 16-ричной системе счисления, K - в десятичной.
Выходные данные
число B.
Примеры
Входные данные Выходные данные
1 1A2B 4 4E5D FFFF
2 AB00 1 5C9A 1234

Рассмотрим натуральное число \(x\). Требуется прибавить к нему минимальное возможное целое неотрицательное число \(y\), чтобы двоичная запись получившегося числа \(x+y\) имела ровно \(k\) единиц.

Формат входных данных
Первая строка ввода содержит натуральное число \(x\) (\(1 \le x \le 10^{18}\)).

Вторая строка ввода содержит натуральное число \(k\) (\(1 \le k \le 60\)).

Формат выходных данных
Выведите минимальное возможное целое неотрицательное число \(y\), такое что двоичная запись числа \(x+y\) имеет ровно \(k\) единиц.

Беси пошла компьютерные курсы и восхищена темой «Системы
счисления». Напомним, что число, записанное в системе счисления
B имеет цифровые места, представляющие 1, B, B^2, B^3 … справа
налево. Например, для 10-ой системы счисления мы имеем цифры,
представляющие 1, 10, 100, 1000, … Последовательность цифр 1234
в 10-й системе означает
1(1000) + 2(100) + 3(10) + 4(1).
Та же последовательность в 5-ой системе означает
1(125) + 2(25) + 3(5) + 4(1)
И даёт число 194 в 10-й системе.
Беси заметила, что если основание системы счисления B возрастает,
возрастает и число, им представляемое. Например, 1234 в 7-ой системе
счисления представляет большее число, чем 1234 в 6-ой системе
счисления.

Когда мы записываем число в системе счисления с основанием B,
каждая цифра может быт в диапазоне от 0 до B-1. Поэтому, например,
в 10-й систем счисления, цифры находятся в диапазоне 0..9,
а в 5-ой систем счисления, цифры находятся в диапазоне 0..4.

Можно рассматривать системы счисления с основанием больше чем 10.
Например, компьютерные специалисты часто используют в качестве
основания системы счисления основание 16, и используют буквы A..F
для обозначения величин 10..15. Например, BEEF в 16-ой системе соответствует
11(4096) +14(256) + 14(16) + 15,
что после сложения даёт 48879 в 10-ой системе счисления.
Беси заинтригована концепцией использования оснований больше 10.
Она берёт число N и выписывает его в двух различных системах счисления X и Y,
каждое из которых в диапазоне 10..15,000. Интересно, что в обоих случаях
она получает последовательность из 3 цифр, каждое из которых в диапазоне 1..9.
К сожалению, из-за плохой памяти Беси забыла N X Y. Пожалуйста, помогите
ей по двум 3-цифровым последовательностям, которые она выписала,
определить системы счисления X и Y, которые она использовала.
Заметим, что программа, которая просто будет перебирать все возможные
сочетания X и Y (примерно 15,000^2 вариантов) не пройдёт по времени,
и не получит полный балл.

Формат входных данных

Входной файл начинается с целого числа K, затем оно содержит K строк,
каждая из которых отдельный тест. Каждый тест состоит из двух
3-значных чисел. Первое - число N, записанное в системе счисления с
основанием X, второе - число N, записанное в системе счисления с
основанием Y. N X Y могут различаться для каждого теста.

Формат выходных данных

Ваш вывод должен содержать K строк, по одной для каждого теста.
На каждой строке выведите два числа X и Y для соответствующего теста,
разделённые одиночными пробелами. Гарантируется существование и
единственность решения.

Примечание
Число 8892, записанное в системе счисления с основанием 47 есть 419,
и это же число, записанное в системе счисления с основанием 35 есть 792.

Problem 2: Awkward Digits [Brian Dean]
Бесси учиться конвертировать числа между системами счисления, с различными основаниями, но она делает ошибки, поскольку тяжело держать ручку между копытами.
Когда Бесси записывает результат конвертирования, она всегда записывает одну цифру с ошибкой. Например, если она конвертирует число 14 в двоичную систему, корректный результат будет 1110, но она может написать вместо него «0110» или «1111». Бесси никогда не добавляет и не удаляет цифры, но у нее может получится число с ведущим нулем в результате ее ошибки.
Вам дается ответ, записанный Бесси при конвертировании числа N К основаниям 2 и 3. Определите исходное значение числа N в десятичной системе счисления. Вы можете полагать, что N не превосходит 1 миллиард, и что всегда существует уникальное значение N.
PROBLEM NAME: digits
Формат входных данных
* Строка 1: представление числа N в двоичной системе счисления, одна цифра записана некорректно. (основание=2)
* Строка 2: представление числа N в троичной системе счисления, одна цифра записана некорректно (основание=3).
Формат выходных данных
* Строка 1: корректное значение числа N.
Примечание
Корректное значение числа 14 ("1110" в двоичной системе, "112" в троичной).

Современные компьютеры состоят из микроскопических транзисторов (электронных переключателей). Каждый из них может быть в двух состояниях:

  • 1 (ВКЛ) — есть ток → True

  • 0 (ВЫКЛ) — нет тока → False


Какое число соответствует True в двоичном коде?
1) 1
2) 0
66175#66175
Старшеклассник Дима собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 12 различных команд, но для нас представляют интерес три из них, связанные с управлением манипулятором. Дима решил передавать роботу блоки инструкций в виде числа: робот получает число, переводит его в систему счисления с основанием 12 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за манипуляторы робота, кратны четырём. На вход подаётся N чисел – блоков с наборами команд. В скольких блоках робот выполнил не менее M команд с манипулятором?

Формат ввода На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Во второй строке подаётся целое неотрицательное число M (0 ≤ M ≤ 1000) – требуемое количество команд с манипулятором. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – блок команд, записанных в десятичной системе счисления.
Формат вывода Вывести одно целое число – в скольких блоках команд робот выполнил не менее M команд с манипулятором.
65995#65995
В ходе игры «Зарница» Витя и Паша пересылают друг другу важные сообщения. Но для того, чтобы противник не смог их понять, сообщения кодируются. Для кодирования информации ребята используют латинский алфавит из 26 букв, все буквы заглавные. Слова кодируются следующим образом. Каждая буква в слове заменяется ее порядковым номером в алфавите, записанном в системе счисления с основанием Sys (2 <= Sys <= 36). Все полученные числа записываются подряд без пробелов. Если числа (порядковые номера букв) в заданной системе счисления могут иметь разную длину, то более короткие числа дополняются слева нулями до требуемой длины. Например, в десятичной системе счисления порядковый номер буквы A будет равен 1, а буквы Z – 26. Соответственно, при шифровании, к единице слева будет дописан ноль. То есть код буквы A будет 01, а код буквы Z – 26. Для усложнения возможной расшифровки сообщения противником, при кодировании разных слов, могут использоваться различные системы счисления. Основание использованной системы счисления, выраженное двухзначным десятичным числом дописывается справа к коду всего слова.
Например, слово AZ, при использовании десятичной системы счисления, будет закодировано как 012610, а при использовании троичной системы счисления будет закодировано как 00122203.

Напишите программу, которая будет расшифровывать закодированные сообщения.
На вход программе подается одно закодированное сообщение. Длина сообщения не более 100 символов. Программа должна вывести исходное слово.
65985#65985
В ходе игры «Зарница» Саша и Женя пересылают друг другу важные сообщения. Но для того, чтобы противник не смог их понять, сообщения кодируются. Для кодирования информации ребята используют латинский алфавит из 26 букв, все буквы заглавные. Слова кодируются следующим образом. Каждая буква в слове заменяется ее порядковым номером в алфавите, записанном в системе счисления с основанием Sys (2 <= Sys <= 36). Все полученные числа записываются подряд без пробелов. Если числа (порядковые номера букв) в заданной системе счисления могут иметь разную длину, то более короткие числа дополняются слева нулями до требуемой длины. Например, в десятичной системе счисления порядковый номер буквы A будет равен 1, а буквы Z – 26. Соответственно, при шифровании, к единице слева будет дописан ноль. То есть код буквы A будет 01, а код буквы Z – 26. Для усложнения возможной расшифровки сообщения противником, для кодирования букв, стоящих на разных местах в слове, используются различные системы счисления. Основание использованной системы счисления выбирается исходя из порядкового номера буквы в кодируемом сообщении. Для кодирования первой буквы сообщения используется двоичная система счисления, для второй – троичная, для третьей – четверичная и т.д., до системы счисления с основанием 36 включительно. Далее основания систем счисления повторяются циклически – 2, 3, 4, …36, 2, 3, … Например, слово AZ, будет закодировано как 00001222.
Напишите программу, которая будет расшифровывать закодированные сообщения.
На вход программе подается одно закодированное сообщение. Длина сообщения не более 200 символов. Программа должна вывести исходное слово.
65960#65960
Старшеклассник Миша собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 13 различных команд, но для нас представляют интерес три из них – «вперёд», «назад», «стой». Миша решил передавать роботу инструкции в виде цифр числа: робот получает число, переводит его в систему счисления с основанием 13 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за изменение скорости робота, кратны шести.
На вход подаётся N чисел с наборами команд. Сколько раз робот изменит скорость, если считать, что он не встречает препятствий?

Формат ввода
На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – набор тринадцатеричных команд, записанных в десятичной системе счисления.
Формат вывода
Вывести одно целое число – сколько раз робот изменит скорость.
65822#65822
Заданы два различных целых положительных числа a и b, записанные в восьмеричной системе счисления. Оба числа двузначные. В условии данной задачи в двузначном числе старшая цифра может быть и нулем.
В двузначном числе за один ход разрешается заменить любую цифру на сумму цифр по модулю 8 (остаток от деления суммы цифр на 8). Построить цепочку ходов минимальной длины, которая переводит a в b. Если существует несколько цепочек минимальной длины, то выбрать ту из них, в которой сумма всех чисел максимальна (числа a и b являются частью цепочки). В качестве ответа записать сумму чисел в найденной цепочке. Результат записывается в десятичной системе счисления. В случае невозможности построить цепочку вывести число 0.

Формат входных данных
На вход программе подается строка, содержащая два целых положительных восьмеричных двузначных числа a и b, записанные через пробел.
Формат выходных данных
Вывести целое десятичное число – сумму чисел в найденной цепочке.
65821#65821
Станция связи принимает блоки сообщений. Каждое сообщение представляет собой последовательность кодовых сигналов. Всего сигналов 26; они перечислены в блоке как цифры числа, записанного в системе с основанием 26.Обработка некоторых кодовых сигналов требует участия операторов;значения таких сигналов кратны 6. На вход подаётся N чисел, записанных вдесятичной системе счисления – блоков сообщений. Определите, в сколькихблоках оказалось менее M1 или более M2 команд, требующих участияоператоров.

Формат входных данных
На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество блоков сообщений. Во второй строке подаются два целых неотрицательных числа M1 и M2 (0 ≤ M1 ≤ M2 ≤ 1000) – ограничение по количеству кодовых сигналов, требующих обработки оператором. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – блок сообщений, записанных в десятичной системе счисления.
Формат выходных данных
Вывести одно целое число – в скольких блоках оказалось менее M1 или более M2 команд, требующих участия операторов.
65820#65820
Словом Чемпернауна называется длинная строка, полученная из натуральных чисел, записанных подряд без пробелов и запятых. Так, для десятичной системы счисления слово Чемпернауна начинается с 123456789101112…, а для семеричной – с 1234561011121314151620…
Найдите, какие цифры стоят на заданных местах (индексах) в слове Чемпернауна, записанном в семеричной системе счисления. Например, под индексом 3 находится цифра «4», а под индексом 1 цифра «2» – нумерация начинается с нуля.

Формат входных данных
На вход программе в первой строке подается натуральное число N (N ≤ 1000) – количество индексов, для которых надо определить цифру в записанном в семеричной системе слове Чемпернауна. Во второй строке даётся последовательность из N неотрицательных чисел, разделённых пробелами, каждое из которых не превосходит 2*109 – индексы, для которых надо найти цифру. Нумерация индексов начинается с 0.

Формат выходных данных
Вывести строку из N цифр – цифр, стоящих на заданных местах в слове Чемпернауна, записанном в семеричной системе счисления.
2#65793
В мире двоичных чисел решили разобраться, почему некоторые числа не дружат друг с другом, потому после ряда проведённых экспериментов было выявлено, что точно не дружат друг с другом те числа, которые нельзя поставить рядом так, чтобы в их последовательности не было двух и более единиц подряд, а также не было трёх и более нулей подряд.
Помогите понять жителям двоичного мира, сколько пар чисел от 1 до N нельзя точно никак подружить.
Например: есть два числа 4 и 5, в двоичной системе счисления они представлены как 100 и 101. Если их поставить как 101 и 100, получится 101100, что даёт две единицы подряд в строке, значит дружить они не будут, но если поставим наоборот 100 и 101 = 100101, то двух единиц подряд нет, а также нет трёх и более нулей подряд, значит числа могут подружиться.
Формат входных данных
На первой строке подаётся число N (1 <= N <= 105) – количество чисел в двоичном мире от 1 до N (включительно).
Формат выходных данных
Вывести на первой строке количество пар чисел, которые никак нельзя будет подружить друг с другом. Рассматриваются все числа от 1 до N, но все числа уникальны, потому не рассматриваются пары одинаковых чисел и повторяющиеся пары (если нельзя подружить число x с числом y, то пара (x, y) и (y, x) считается одной парой чисел).
1#65792
В мире двоичных чисел произошёл масштабный сбой, теперь двоичные числа разучились складываться друг с другом. Притом спустя часть времени была выявлена закономерность новых правил сложения, она оказалась следующей:
  • 1 + 1 = 0
  • 1 + 0 = 1
  • 0 + 1 = 0
  • 0 + 0 = 1
Таким образом было выявлено, что также порядок слагаемых имеет значение (первое слагаемое число верхнее, второе – нижнее). Так как все эти правила теперь запомнить было очень сложно, то попросили разработать алгоритм, который будет принимать два двоичных числа одинаковой длины и возвращать результат суммы этих двух чисел в столбик.

Формат входных данных

На первой строке подаётся первое слагаемое – двоичное число без значащих нулей длины N (1 <= N <= 105).
На второй строке подаётся второе слагаемое – двоичное число без значащих нулей также длины N.

Формат выходных данных
Вывести на первой строке результат суммы двух двоичных чисел. Если в результате есть незначащие нули, то выводить без них. Если получился 0, то вывести просто 0.
Злым числом в математике называется неотрицательное целое число с чётным числом единиц в его двоичной записи (например, число 5 — злое, в его двоичной записи две единицы). Они используются в теории чисел при исследовании последовательности Морса–Туэ и применяются в алгоритмах фрактального сжатия изображений. Натуральное число будем называть очень злым, если само оно чётное и количество единиц в его двоичной записи также чётное. Это такие числа, как 6, 10, 12, 18, 20 и так далее. По данному n определите количество очень злых чисел, не превосходящих n.

Формат входных данных
Единственная строка входного файла содержит натуральное число n (1 ≤ n ≤ 109 ).

Формат выходных данных
Выведите одно неотрицательное целое число — количество очень злых натуральных чисел, не превосходящих n.
Дана запись некоторого числа в двоичном дополнительном коде. Выведите десятичную запись этого числа.

Входные данные
Программа получает на вход строку из нулей и единиц. Длина строки не меньше 2 и не больше 16.

Выходные данные
Программа должна вывести десятичную запись числа, записанного в этой строке в двоичном дополнительном коде.
Напишите программу, которая по данным числам A и n записывает представление числа A в n-разрядном двоичном дополнительном коде.

Входные данные
Первая строка входных данных содержит число A, вторая строка –– число n, при этом    2 ≤ n ≤ 16,  −2n-1 ≤ A ≤  2 n-1−1 .

Выходные данные
Программа должна вывести строку из n символов, содержащих запись числа A в n-разрядном двоичном дополнительном коде, первый символ –– старший знаковый разряд.
Напишите программу, переводящую запись числа между двумя произвольными системами счисления.

Входные данные
На вход программа получает три величины: n, A, k, где n и k — натуральные числа от 2 до 36, основания системы счисления, A — число, записанное в системе счисления с основанием n, A<231.

Выходные данные
Необходимо вывести значение A в системе счисления с основанием k без лидирующих нулей.

Цифры записываются следующими символами: 0, 1, 2, ..., 9, A, B, C, ..., Z.
Напишите программу, переводящую число из шестнадцатеричной системы счисления в двоичную.

Входные данные
Программа получает на вход строку, состоящую из цифр 0, ..., 9 и букв A, ..., F, являющуюся записью некоторого 16-ричного целого числа. Длина строки не превосходит 50 символов, первый символ в строке не равен 0. Необходимо вывести запись этого числа в двоичном виде без лидирующих нулей. 

Выходные данные
Выведите результат перевода.
Поделиться
Класснуть