N1 = 21 * 2 + 10 + 9 = 61 => i1 = 6 бит.
k1 = 15 * 6 / 8 = 11 * 1/4 => 12 байт.
N2 = 10 => i2 = 4 бит.
k2 = 4 * 4 / 8 = 16 / 8 = 2 байт.
K = 2 + 12 + 25 = 39 байт
Ответ: 39
Примерно так
Program qq;
const n=15;
var a:array[1..n] of Integer;
i:Integer;
begin
for i:=1 to n do begin
a[i]:=random(70-20);
write(a[i]:4);
end;
writeln;
for i:=1 to n do begin
if a[i] mod 2 = 0 then a[i]:=0;
write(a[i]:4);
end;
end.
1)33554432:8:1024:1024=4 Гб
И это, к сожалению, все, что Я знаю XD
Смотря какая целочисленная переменная предпологается, их много разновидностей и и у каждой свой размер. (Пример для переменных из PascalABC в приложении)
Например целочисленная переменная типа word идеально подходит, займет 2 байта
Но более обычно для хранения целочисленных используется integer (Int32) которая занимает 4 байта
Переменные вещественых чисел обычно занимают больше места чем переменные целых, так что этот вариант рассматривать не будем
Строковая. В данном случае 500 занимает 3 символа. Чтобы узнать размер данных нужно знать в какой кодировке предпологается хранение. Стандартно сейчас используются 8битные и 16 битные кодировки, но существуют и другие.
3 * 8 бит = 3 * 1 байт = 3 байта
Вообще целые числа лучше хранить в целочисленных переменных, они под них оптимизированны, потому я за вариант 2