1) целочисленные - точно представляются в компьютере, занимают небольшое, заранее определенное количество памяти. 2) вещественные - имеют широкий диапазон представления данных 3) символьные - переменная занимает 1 или 2 байта (зависит от кодировки), могут объединяться в строки большой длины, представляя произвольный текст.
Если использовать коды длины N, то должно существовать не менее 16 различных строчек из символов 0 и 1, таких, что в каждой такой строчке будет чётное число единиц (это очевидно, конечно: если таких строчек будет меньше 16, то кодов попросту не хватит).
3 не подходит: даже без ограничений на количество единиц число строчек 2^3 = 8, что меньше 16.
4 тоже не подходит: без ограничений на количество единиц число строчек 2^4 = 16, но как минимум одна не подходит (например, 0001 - не удовлетворяет требованиям). Хороших строчек остается не больше 15, что меньше 16. (На самом деле, хороших строчек длины 4 всего 8).
Пробуем 5. Если придумаем как закодировать 16 символов - победа. А закодировать можно вот как: первые 4 символа - двоичная запись номера символа (нумеруем начиная с нуля, например 5-й символ - 0101), а последний символ - 0, если число единиц среди первых четырёх символов чётно и 1 - если нечётно. Тогда в любом случае получится чётное количество единиц.
Program z1; var a:array[1..100] of integer; n,i:byte;ma:integer; begin write('n=');readln(n); for i:=1 to n do begin write(i,')');readln(a[i]) end; ma:=a[1]; for i:=1 to n do begin if a[i]>ma then begin ma:=a[i] end end; for i:=1 to n do begin a[i]:=ma end; writeln('test n=',n); for i:=1 to n do begin writeln(a[i]) end; readln end.
2) вещественные - имеют широкий диапазон представления данных
3) символьные - переменная занимает 1 или 2 байта (зависит от кодировки), могут объединяться в строки большой длины, представляя произвольный текст.