2. Изучение систем счисления Ограничение времени 1 секунда
Ограничение памяти 244Mb
Ввод digits.in
Вывод digits.out
Петя учится конвертировать числа между системами счисления с различными основаниями. Перед тем, как перейти к изучению систем счисления с большим основанием, он хочет научиться работать с двоичными и троичными системами. Когда он записывает результат конвертирования, он всегда ошибается в одной цифре.
Например, если он конвертирует число 14 в двоичную систему, то он может получить «0110» или «1111», хотя корректный результат равен "1110". Петя никогда не добавляет и не удаляет цифры, но у него может получиться число с ведущим нулем в результате ошибки.
Вам дается ответ, записанный Петей при конвертировании числа N (1≤ N≤ 109) в системы счисления с основаниями 2 и 3. Определите исходное значение числа N в десятичной системе счисления. Вы можете полагать, что всегда существует уникальное значение N.
Формат ввода
Строка 1: представление числа N в двоичной системе счисления, одна цифра записана некорректно.
Строка 2: представление числа N в троичной системе счисления, одна цифра записана некорректно.
Формат вывода
Единственная строка с корректным значением числа N в десятичной системе счисления.
Пример
Ввод Вывод
1010
212
14
Примечания
1010 – ошибочная запись исходного числа в двоичной системе счисления. 212 - ошибочная запись исходного числа в троичной системе счисления. Корректное значение числа 14 ("1110" в двоичной системе, "112" в троичной).
begin
var k:=0;
var n:=ReadInteger();
var nmax:=0;
while n<>0 do begin
Inc(k);
if n mod 10 = 0 then
if n>nmax then nmax:=n;
n:=ReadInteger()
end;
var cntrl:=ReadInteger();
Writeln('Получено ',k,' чисел');
Writeln('Полученное контрольное значение: ',cntrl);
Writeln('Вычисленное контрольное значение: ',nmax);
if cntrl=nmax then Writeln('Контроль пройден')
else Writeln('Контроль не пройден')
end.
Тестовое решение:
53
16
40
9
10
32
74
0
40
Получено 7 чисел
Полученное контрольное значение: 40
Вычисленное контрольное значение: 40
Контроль пройден