В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия

Перед отправкой Терминатора Т-800 в для Джона Коннора (события 2 части) обнаружилось, что при анализе текстовых документов, OCR-модуль машины допускает ошибки при чтении символов в записи моделей терминаторов. Времени на повторное обучение нейронной сети нет, поэтому было принято решение написать hot-fix на символы “T”, “0”, “1”, “8” и “-“. При чтении Терминатор каждый символ переводит в матрицу 10 на 10 точек, где 1 означает наличие заполнения, а 0 – отсутствие. Символы распознаются следующим образом:

“T” - Два прямоугольника лежащих друг на друге, левая граница верхнего прямоугольника левее нижнего, правая граница верхнего прямоугольника правее нижнего.

“0” - Заполненный прямоугольник с прямоугольным вырезом внутри, границы выреза не лежат на сторонах внешнего прямоугольника.

“8” - Заполненный прямоугольник с 2мя прямоугольными вырезами внутри, границы вырезов не лежат на сторонах внешнего прямоугольника, границы вырезов не пересекаются, нижняя граница одного выреза выше другого.

“1” - Заполненный прямоугольник, ширина прямоугольника строго меньше его длины.

“-“ - Заполненный прямоугольник, ширина прямоугольника строго больше его длины.

Необходимо, чтоб остальные комбинации интерпретировались символом “Х”.

Напишите программу для решения поставленной задачи.

На вход программе подается 10 строк состоящих из 10 символов “0” или “1”. Программа должна выводить один из символов “T”, “0”, “1”, “8”, “-“ или “X”.

Sample Input:

0000000000
0001110000
0001010000
0001010000
0001110000
0001110000
0001010000
0001010000
0001110000
0000000000
Sample Output:

8
У меня нет даже идей,как это решить. Буду рада любой

Показать ответ
Ответ:
НатолийАсилич
НатолийАсилич
24.05.2020 17:42
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! В других версиях языка работа не гарантируется!

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив A[',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-50,50);
  a.Println(4);
  Writeln(4*a.ColCount*'-');
  var k:=a.Rows.Select(x->x.Aggregate(0,(x,y)->x+y)).ToArray.IndexMax;
  for var j:=0 to (n-1) div 2 do Swap(a[k,j],a[k,n-1-j]);
  a.Println(4)
end.

Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 5
*** Исходный массив A[4,5] ***
  29  36 -50  -4 -32
  -1 -10  -7 -47 -50
 -16   4  48 -41 -43
   8  46  45  14 -44

  29  36 -50  -4 -32
  -1 -10  -7 -47 -50
 -16   4  48 -41 -43
 -44  14  45  46   8
0,0(0 оценок)
Ответ:
эмель1
эмель1
01.10.2022 20:07
Если число 49 записывается как 121, значит первый остаток от деления равен 1, то есть основанием системы счисления является число, кратное 48.

121 имеет 3 разряда, значит основание однозначно меньше 10 и больше 2. Подходят 3, 4, 6, 8.

Учитывая, что в числе 121 три разряда, значит число 48 делилось всего три раза. 
Число 8 не подойдет, т.к. 48/8=6, значит будет всего два деления.
Число 3 не подойдет, т.к. 48/3 = 16, 16/3=5 - то есть тут будет больше трёх знаков.
Число 4 не подойдет, т.к. 48/4=12, а 12 делится на 4 без остатка, но, судя по числу, во втором делении остаток должен быть равен 2.
Остаётся число 6. Проверим

49/6=8 |1
8/6 = 1 |2
1/6=0 |1

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