1.
а) 512 Мбайт = 512 * 8 Мбит = 4096 Мбит
б) 32 Кбайт = 32 * 8 Кбит = 256 Кбит
2.
а) 32 Мбит = 32 : 8 Мбайт = 4 Мбайт
б) 1024 Кбит = 1024 : 8 Кбайт = 128 Кбайт
3. Все зависит от кодировки. Если 1 символ занимает 1 байт, тогда сообщение будет занимать столько байт, сколько символов в сообщении (буквы, пробелы, точки и любые другие символы) - в данном случае - 20 байт.
Если же 1 символ занимает 2 байта (к примеру в кодировке юникод UTF-16), тогда сообщение будет занимать 40 байт.
4. 4 гигабайта = 4096 Мбайт.
4096 / 2 = 2048 картинок поместится на флешке размером 4 гигабайт
Последний вопрос не понял. Посчитать 2 в 32 степени?
Программа проста в понимании, но неэффективна при больших значениях
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.