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

1) У исполнителя Делитель две команды, которым присвоены номера: 1. раздели на 4
2. вычти 1

Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 65 числа 2, содержащий не более 5 команд. В ответе запишите только номера команд. Если таких алгоритмов более одного, то запишите любой из них.

2) У исполнителя Квадратор две команды, которым присвоены номера:

1. умножь на 2
2. вычти 2

Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 6 числа 36, содержащий не более 5 команд. В ответе запишите только номера команд. Если таких алгоритмов более одного, то запишите любой из них.

Показать ответ
Ответ:
Zhenya13551
Zhenya13551
09.03.2022 03:55
Не самый лёгкий, но работающий

const  n = 10000;//Не изменяемая по ходу программы переменная
var  a: array[1..n] of integer;  b: array[1..10]of integer;  c: array[1..10]of integer;  i, s, v: integer;
begin  for i := 1 to 10 do //Заполнение массива с числами от 1 до 10    c[i] := i;  for i := 1 to n do //Заполнение массива    a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей  for i := 1 to n do    case a[i] of      1: b[1] := b[1] + 1;      2: b[2] := b[2] + 1;      3: b[3] := b[3] + 1;      4: b[4] := b[4] + 1;      5: b[5] := b[5] + 1;      6: b[6] := b[6] + 1;      7: b[7] := b[7] + 1;      8: b[8] := b[8] + 1;      9: b[9] := b[9] + 1;      10: b[10] := b[10] + 1;    End;    for i := 1 to 10 do    for s := 1 to 9 do      if b[s] > b[s + 1] then begin        v := b[s];        b[s] := b[s + 1];        b[s + 1] := v;        v := c[s];        c[s] := c[s + 1];        c[s + 1] := v;      end;  writeln(c[10], ' - их ', b[10]);    end.
0,0(0 оценок)
Ответ:
Yaroslav1640
Yaroslav1640
11.07.2022 11:56
Будем последовательно решать задачу для первых i символов кода, основываясь на ответах для i - 1 и i - 2. Заметим, что если i-й символ кода равен 0 или ответа для i - 1 не существует, то ответ для i получается добавлением одного символа к ответу для i - 2, если последние две цифры кода нельзя понять, как зашифрованную букву, или ответа для i - 2 не существует, то надо добавить символ к i - 1, а иначе сравнить длины ответов и добавить букву к тому, кто короче.

Код (python 3.5):
codes = "."
with open('input.txt', 'r') as f:
    encoded = list(map(int,list(f.read(
if len(encoded) == 1:
    print(codes[encoded[0]])
else:
    decoded = [codes[encoded[0]], ""]
    for i in range(1, len(encoded)):
        if (decoded[0] is None) or (encoded[i] == 0):
            decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]]
        elif (10*encoded[i-1] + encoded[i]>26) or (decoded[1] is None) or \
            (len(decoded[1]) >= len(decoded[0])):
            decoded = [decoded[0] + codes[encoded[i]], decoded[0]]
        else:
            decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]]
    with open('output.txt', 'w') as f:
        f.write(decoded[0])
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота