1) Высчитаем количество пикселей в изображении.
128 * 128 = 16384 пикселя.
2) Узнаем информационный вес каждого пикселя.
Формула нахождения информации N = 2i (где N - количество цветов в палитре, i - количество информации в битах, которое несет каждый пиксель).
256 = 28
Один пиксель несет 8 бит информации.
3) Найдем информационный вес изображения.
16384 * 8 = 131072 бита
4) Переведем биты в байты. 1 Байт = 8 битам.
131072 : 8 = 16384 байта.
5) Переведем байты в Кбайты. 1 Кбайт = 1024 байт.
16384 : 1024 = 16 Кбайт.
Ответ: объем памяти нужен минимум 16 Кбайт.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout << "obrabotka massiva" << endl;
int array1[16] = { 5, -12, -12, 9, 10, 0, -9,
-12, -1, 23, 65, 64, 11, 43, 39, -15 };
cout << "indeks" << "\t\t" << "element massiva" << endl;
for (int counter = 0; counter < 16; counter++)
{
cout << "array1[" << counter << "]" << "\t\t" << array1[counter] << endl;
}
system("pause");
return 0;
}
I = K * i (I - объем информации, K - кол-во пикселей, i - вес одного пикселя / глубина цвета)
i = I / K
K = 512 * 300 = 153600 пикселей
I = 150 Кбайт = 150 * 1024 * 8 бит = 1228800 бит
Глубина цвета бит (округляем в меньшую сторону так, как тут могут быть только целые числа)
Кол-во цветов в палитре цветов
Ответ: 256
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
function SodGood(n:integer):boolean;
// Попадает ли сумма цифр числа n в диапазон [20;30]?
begin
var s:=0;
while n>0 do begin
s+=(n mod 10);
n:=n div 10
end;
Result:=(s>=20) and (s<=30)
end;
begin
Print(Range(10000,99999).Where(n->SodGood(n)).Average)
end.
<u><em>Результат:</em></u>
57982.8943738243