1 вариант Напишите программу, которая в последовательности натуральных чисел находит
среднее арифметическое чисели кратных8 или сообщает, что таких чисел нет
(выводит «NO»). Программа получает на вход натуральные числа, количество
введённых чисел неизвестно последовательность чисел заканчивается числом о
(О признак окончания ввода на Входит последовательность). Количество
чисел не превышает 100. Введенные числа не превышают 300. Программа
должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO»,
если таких чисел нет. Начение выводитисокинон до десятых.
Пример работы программы:
Входные данные Выходные данные
На с++
КР
//PascalABC.Net 3.0, сборка 1052
function NOD(a, b: longint): longint;
begin
while a <> b do if a > b then a := a - b else b := b - a;
NOD := a
end;
var
f: Text;
tNOD: longint;
begin
Assign(f, 'input.txt'); Reset(f);
if not Eof(f) then Readln(f, tNOD);
var n: longint := 1;
while (not Eof(f)) and (n > 0) and (tNOD > 1) do
begin
Readln(f, n);
if n <> 0 then tNOD := NOD(tNOD, n)
end;
Close(f);
Assign(f, 'output.txt'); Rewrite(f);
Writeln(f,tNOD);
Close(f)
end.
2. "Современный" вариант
//PascalABC.Net 3.0, сборка 1052
function NOD(a, b: integer): integer;
begin
while a <> b do if a > b then a -= b else b -= a;
Result := a
end;
var
tNOD: integer := 0;
n: integer;
begin
foreach var sn in Readlines('input.txt') do
begin
n := StrToInt(sn);
if tNOD = 0 then tNOD := n
else
if n = 0 then break else tNOD := NOD(tNOD, n);
end;
WriteAllText('output.txt', IntToSTR(tNOD));
end.
Пример файла input.txt находится во вложении, контрольный результат 4096
При неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. За счет этого удается значительно сократить объем файла без потерь информации. Существует несколько методов неравномерного кодирования, важнейших из которых является метод Шеннона-Фано.
как-то так