округляем (всегда с избытком, вверх, т.к. кластер считается занятым, даже если занята лишь его малая часть), и получаем что файл одного изображения займёт 2289 кластеров
считаем, сколько кластеров займут все 2019 файлов:
2289 * 2019 = 4621491 кластеров
считаем, сколько это в килобайтах:
4621491 * 8 = 36971928 КБ
P.S. Именно поэтому файлы изображений обычно хранят сжатыми (чтобы не получилось, что всего то 2 тысячи картинок заняли десятки гигабайт).
Var i,i_beg,i_end,k:longint; p:set of longint; begin Writeln('Вводите целые числа большие двух, конец ввода по числу 0'); i_beg:=1000000; i_end:=0; repeat Read(k); if k<>0 then begin if i_beg>k then i_beg:=k else if i_end<k then i_end:=k; Include(p,k) end until k=0; Writeln('Числа, не входящие в последовательность:'); for i:=i_beg to i_end do if not (i in p) then Write(i,' ') end.
Тестовое решение: Вводите целые числа большие двух, конец ввода по числу 0 6 12 9 14 10 19 17 11 7 0 Числа, не входящие в последовательность: 8 13 15 16 18
На диске будет занято 36 971 928 КБ памяти.
Объяснение:
число точек в изображении:
1877 * 3330 = 6250410 точек
считаем чистый размер файла одного изображения:
6250410 * 24 = 150009840 бит
переводим в байты:
150009840 / 8 = 18751230 байт
переводим в килобайты:
18751230 / 1024 ≈ 18311,75 КБ
считаем, сколько кластеров займёт такой файл:
18311,75 / 8 ≈ 2288,97 кластеров
округляем (всегда с избытком, вверх, т.к. кластер считается занятым, даже если занята лишь его малая часть), и получаем что файл одного изображения займёт 2289 кластеров
считаем, сколько кластеров займут все 2019 файлов:
2289 * 2019 = 4621491 кластеров
считаем, сколько это в килобайтах:
4621491 * 8 = 36971928 КБ
P.S. Именно поэтому файлы изображений обычно хранят сжатыми (чтобы не получилось, что всего то 2 тысячи картинок заняли десятки гигабайт).
i,i_beg,i_end,k:longint;
p:set of longint;
begin
Writeln('Вводите целые числа большие двух, конец ввода по числу 0');
i_beg:=1000000; i_end:=0;
repeat
Read(k);
if k<>0 then
begin
if i_beg>k then i_beg:=k
else if i_end<k then i_end:=k;
Include(p,k)
end
until k=0;
Writeln('Числа, не входящие в последовательность:');
for i:=i_beg to i_end do
if not (i in p) then Write(i,' ')
end.
Тестовое решение:
Вводите целые числа большие двух, конец ввода по числу 0
6 12 9 14 10 19 17 11 7 0
Числа, не входящие в последовательность:
8 13 15 16 18