deadnobody
?>

По каналу связи передаются сообщения, содержащие только четыре буквы: А, Б, В, Г; для передачт используется двоичный код, допускающий однозначное декодирование. Для букв А, Б, В используются такие кодовые слова: А: 00011, Б: 111, В: 1010. Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

Информатика

Ответы

sleek73
Из условия нам известно, что ввод завершается числом ноль. Информация о количестве чисел требуется только если их запоминать в массиве, но у нас однопроходный алгоритм, массив не нужен, поэтому про "1000 чисел" благополучно забываем. Числа целые, и по модулю не превышают 30 000, следовательно им надо отводить двухбайтный тип integer, в в котором диапазон представления чисел [-32 768 ; 32 767].
"Нечетные числа, кратные трем" - это такие, у которых остаток от деления на два ненулевой, а остаток от деления на три нулевой. Поскольку числа целые, то и деление, конечно же, целочисленное.
Длина последовательности n - это просто счетчик количества прохождений цикла за вычетом единицы, потому что последний проход по циклу будет при вводе нуля, а его учитывать не надо. В другом счетчике k мы накапливаем количество чисел, для которых выполнилось рассмотренное выше условие "нечетные числа, кратные трем".

var
  n,k,m: integer;
begin
  Writeln('Вводите целые числа, для окончания введите 0');
  n:=0; k:=0;
  repeat
    Read(m); Inc(n);
    if (m mod 2 <> 0) and (m mod 3 = 0) then Inc(k)
  until m=0;
  Writeln('Введено чисел- ',n-1);
  Writeln('Нечетных, кратных трем- ',k)
end.

Тестовое решение:
Вводите целые числа, для окончания введите 0
-5
12
8
27
-18
14
-33
7
0
Введено чисел- 8
Нечетных, кратных трем- 2
Вячеславович-Дмитрий1694
Var a:array[1..3] of integer;
i,max,min,n:integer;
begin
for i:=1 to 3 do
begin
readln(a[i]); {задаем 3 числа в массиве}
if i=1 then begin min:=a[i]; max:=a[i]; end; {Присваем максимальному и минимальному елементу масива первое значение}
if min>a[i] then min:=a[i]; {Находим минимальный елемент среди 3}
if max<a[i] then max:=a[i]; {Находим максимальный елемент среди3}
end;
for i:=1 to 3 do
if (a[i]<>max) and (a[i]<>min) then n:=a[i]; {Нахождение елемента между максимальным и минмальным}
writeln(n); {Вывод}
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

По каналу связи передаются сообщения, содержащие только четыре буквы: А, Б, В, Г; для передачт используется двоичный код, допускающий однозначное декодирование. Для букв А, Б, В используются такие кодовые слова: А: 00011, Б: 111, В: 1010. Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

abakas235
remontsalarievo2
Khrimyan1207
Вячеслав
info122
Вадимовна
turoverova5
Amulenkov
kisuhakisa
drontox1031
Vera-zero281
Татьяна902
mouse-0211fsb3509
Ни Дмитрий1095
verkop9