будем считать, что каждое четное однозначное число это определенный алфавит, мощность которого обозначается буквой N
N=2^i, подставим вместо N 2, получаем 2=2^i запишем левую часть как степень числа 2: 2^1=2^i, отсюда i=1 бит
подставим теперь вместо N 4, получаем 4=2^i запишем левую часть как степень числа 2: 2^2=2^i, отсюда i=2 бит
подставим теперь вместо N 6, получаем 6=2^i число 6 не является точной степенью числа 2, поэтому ответ найдем по таблице неточных степеней числа 2- i=2,58 бит
подставим теперь вместо N 8, получаем 8=2^i запишем левую часть как степень числа 2: 2^3=2^i, отсюда i=3 бит
задача2
запишем условие: мощность компьютерного алфавита равна N=256
I=120 бит, К-?
решение: найдем вес одного символа 256=2^i, i=8 бит
разделим I на i и получим кол-во символов в тексте 120/8=15
...А если интересует решение на классическом Паскале, предлагаю просто поддерживать текущее, предыдущее и пред-предыдущее значения в ряду, и в цикле обновлять ответ.
Обрати внимание! longint может хранить значения только до
, поэтому конкретно в этой программе вывод будет достоверным только для N ≤ 46. Ты можешь сделать текущую, предыдущую и пред-предыдущую переменные типа int64, и тогда максимальное значение N возрастёт до 92. Для бОльших N тебе придётся писать длинное сложение.
Код
var
i, n, pred, predpred, cur: longint;
begin
read(n);
if n = 1 then writeln(1)
else if n = 2 then writeln('1 1')
else write('1 1 ');
if n < 3 then exit;
pred := 1;
predpred := 1;
for i := 3 to n do
begin
cur := pred + predpred;
write(cur, ' ');
predpred := pred;
pred := cur;
end;
writeln;
end.