procedure get_num(var m: bignum; var n: integer); var i := 0; s: string; begin write('Введите число = '); readln(s); s := trim(s); n := 0; for i := length(s) downto 1 do if s[i] in ['0'..'9'] then begin n := n + 1; m[n] := strtoint(s[i]); end; end;
function more(a, b: bignum; n_a: integer): boolean; var i: integer; f := false; begin for i := n_a downto 1 do begin if a[i] > b[i] then f := true else if a[i] < b[i] then f := false; if a[i] <> b[i] then break; end; more := f; end;
procedure show(m: bignum; n: integer); var i: integer; begin write('Вывод '); for i := n downto 1 do write(m[i]); writeln(); end;
begin get_num(a, n_a); get_num(b, n_b);
while (n_a >= n_b) and more(a, b, n_a) do begin if (a[n_a] > b[n_b]) then k := n_a - n_b else if n_a > n_b then k := n_a - n_b - 1 else k := 0;
for i := 1 to n_b do begin a[i + k] := a[i + k] - b[i]; if a[i + k] < 0 then begin for j := i + k to n_a - 1 do begin if a[j] >= 0 then break; a[j] := a[j] + 10; a[j + 1] := a[j + 1] - 1; end end; end; if a[n_a] = 0 then n_a := n_a - 1; end;
38
Объяснение:
80 * 60 * 75 = 360 000 символов на 1 вид насекомого
360 000 * 14 000 = 5 040 000 000 символов на все виды насекомых
Пусть 1 символ кодируется 1 байтом.
5 040 000 000 * 1 = 5 040 000 000 байт информационный объём информации
5 040 000 000 байт = 4 921 875 Кбайт ≈ 4 806,51 Мбайт
4 806,51 / 128 ≈ 37,55 флеш-накопителей
Округляем до целых в большую сторону, т.к. мы не можем использовать дробное количество
37,55 флеш-накопителей = 38 флеш-накопителей
1 байт = 8 бит
1 Кбайт = 1024 байт
1 Мбайт = 1024 Кбайт