Делим группу чисел от 1 до 16 на 2 группы. 12345678 и 9 10 11 12 13 14 15 16 Спрашиваем больше ли 8 загаданное число? Допустим ответили, что не больше. Тогда берём первую группу чисел и снова делим на 2 группы. 1234 5678. И снова задаём вопрос о величине числа относительно уже 4. Допустим отвечают, что больше. Теперь берём группу чисел "5678" и снова делим её пополам (56 и 78). Проделываем всё то же самое. Остаётся всего два числа и тут уже Не трудно будет узнать число. Суммируя число вопросов получается 4.
Три символа алфавита могут быть закодированы в системе счисления по основанию 3, т.е. в троичной системе счисления. При этом под первым номером кодируется число 0, которое записано по условию как , т.е. символ F кодируется нулем. Вторым номером кодируется число 1 и его запись по условию N, откуда мы узнаем, что символ N кодируется цифрой 1. Тогда оставшийся символ S кодируется цифрой 2. И действительно, третьей идет комбинация символов S. Любой член в последовательности кодов может быть получен путем перевода в троичную систему числа, на единицу меньшего номеру этого члена (поскольку отсчет кодов идет с нуля, а члены последовательности нумеруются с единицы). Проверим наше построение для контрольного значения n99=NFNSS. 98(3)=10122 -> NFNSS, что соответствует условию. Теперь само решение. 7) 6(3)=00020 -> FFFSF 27) 26(3)=00222 -> FFSSS 90) 89(3)=10022 -> NFFSS 101) 100(3)=10201 -> NFSFN 196) 195(3)=21020 -> SNFSF
i:integer;
p:real;
b:Boolean;
s:string;
c:char;
begin
i:=5;
p:=3.141593;
b:=true;
s:='Привет!';
c:=chr(200);
writeln('integer ',i);
writeln('real ',p);
writeln('Boolean ',b);
writeln('string ',s);
writeln('character ',c)
end.
Результат работы программы:
integer 5
real 3.141593
Boolean True
string Привет!
character И