алиса2343
27.06.2022 22:44

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" в троичной).

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
000КапралЛеви000
29.09.2021 20:29
Нужно, чтобы при выводе переменная a = 4, b = 0. Алгоритм работает так: к "a" прибавляет единицу при условии, что оно четное, к "b", если нечетное. Поэтому нужно найти число, которое четырехзначное и четное, учитывая, что после каждого прогона цикла, число делят на 10, то есть "отсекают" последнюю цифру числа.

У меня получилось минимальное - 2000.

1)
c = 2000 mod 2;
c = 0 -> a = 0 + 1.
x = 2000 div 10.
2) c = 200 mod 2;
c = 0 -> a = 1 + 1.
x = 200 div 10.
3) c = 20 mod 2.
c = 0 -> a = 2 + 1.
x = 20 div 10.
4) c = 2 mod 2.
c = 0 -> a = 3 + 1.
x = 2 div 10.

Итого на выводе получаем (4 0), что и нужно было.
0,0(0 оценок)
Ответ:
artur17499
29.09.2021 20:29

Объяснение:

если индексы в нумерации от 0:

#include<iostream>

int main()

{

int i,j,m,n,K;

double S,a;

K=0;

S=0;

std::cin>>m>>n>>K;

for(int i=0; i<m; i++)

{

for(int j=0; j<n; j++)

{

std::cin>>a;

if(i+j==K) S+=a;

}

}

std::cout<<S;

return 0;

}

если индексы в нумерации от 1:

#include<iostream>

int main()

{

int i,j,m,n,K;

double S,a;

K=0;

S=0;

std::cin>>m>>n>>K;

for(int i=1; i<=m; i++)

{

for(int j=1; j<=n; j++)

{

std::cin>>a;

if(i+j==K) S+=a;

}

}

std::cout<<S;

return 0;

}

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