Поделитесь своими знаниями, ответьте на вопрос:
Модеры здесь 2 задания не удаляйте. 2. От разведчика было получено сообщение: 100011111010001100111. В этом сообщении зашифрован пароль – последовательность русских букв. Каждая буква пароля кодировалась двоичным словом по таблице, представленной выше. Расшифруйте сообщение. Запишите в ответе пароль. А В Д О Р У 01 011 100 111 010 001 В решении показать разбивку исходного сообщения на буквы. 5. В языке запросов поискового севера для обозначения логических операций «ИЛИ» используется символ «|», а для обозначения логической операции «И» — символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. Запрос Найдено страниц (в тысячах) Царевна & Лебедь 900 Царевна 3200 Царевна | Лебедь 4000 Какое количество страниц (в тысячах) будет найдено по запросу Лебедь? Считается, что все запросы выполнились практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов. Решить задачу, используя диаграммы Эйлера-Венна. (с комментариями)
Программа проста в понимании, но неэффективна при больших значениях
var
n: integer;
function f(i: integer): longint;
begin
if i < 2 then
f := 1
else
f := f(i - 1) + f(i - 2);
end;
begin
read(n);
writeln(f(n));
end.
2) Решение методом динамического программирования. Намного быстрее метода с рекурсией.
var
i, n: integer;
f: array[0..50] of longint;
begin
read(n);
f[0] := 1;
f[1] := 1;
for i := 2 to n do
f[i] := f[i - 1] + f[i - 2];
writeln(f[n]);
end.
3) Решение методом моделирования. Использует меньше памяти.
var
n, a, b, i: integer;
begin
read(n);
if n < 2 then
a := 1
else
begin
a := 0;
b := 1;
for i := 0 to n do
begin
b := a + b;
a := b - a;
end;
end;
writeln(a);
end.