Inna2404
10.02.2020 15:33

Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приемной стороне канала связи. Для букв А, Б и В использовали такие кодовые слова: А — 10, Б — 0, В — 110. Какими кодовыми словами могут быть закодирован буква Г? Код должен удовлетворять свойству однозначного декодирования. Если можно использовать разные варианты кодовых слов, укажите кратчайшие из них
ответ:

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
gfsfsdcxz
26.11.2022 18:08

Общий вид цикла пока:

 

ПОКА <условие> ДЕЛАТЬ <действие>

 

Суть цикла:

Действие выполняется до тех пор, пока условие не станет ложным.

Пример:

А=1

ПОКА А<3  ДЕЛАТЬ А=А+1

 

Цикл закончится, когда переменная А станет равной 3.

 

Если условие изначально ложно, то цикл не выполнится ни разу.

Пример:

А=4

ПОКА  А<3  ДЕЛАТЬ  А=А+1

 

Цикл не выполнится ни разу и значение переменной А не измениться.

 

При составлении цикла ПОКА нужно обязательно следить, чтобы условие рано или поздно стало ложным, иначе цикл будет бесконечно выполняться.

0,0(0 оценок)
Ответ:
anya12345678900
06.07.2021 21:56
#include <cstdio>
#include <cstring>

int
main(void)
{
    enum
     {
        MAX_BUF_SIZE = 100
    };

    char buf[MAX_BUF_SIZE];
    scanf("%s", buf);
    int n = strlen(buf);
    int shift = 0;
    for (int i = 0; i < n; i++) {
        shift = (shift + buf[i] - '0') % 3;
    }
    shift = 3 - shift;
    int sel = -1;
    for (int i = 0; i < n; i++) {
        int tmp = buf[i] - '0' + shift;
        if (0 <= tmp && tmp <= 9) {
            sel = i;
            break;
        }
    }
    if (sel == -1) {
        for (int i = n - 1; i >= 0; i++) {
            int tmp = buf[i] - '0' - shift;
            if (0 <= tmp && tmp <= 9) {
                buf[i] -= shift;
                break;
            }
        }
    } else {
        buf[sel] += shift;
        while ('0' <= buf[sel] + 3 && buf[sel] + 3 <= '9') {
            buf[sel] += 3;
        }
    }
    printf("%s\n", buf);
    return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота