1. Определяем количество байт, необходимое для отображения 16777216 цветов. Те, кто немного "в теме" и так знают, что 16 млн. цветов - это "трехбайтный" цвет, когда на каждый канал RGB - красный, зеленый и синий отводится ровно один байт. А остальным придется немного повычислять. a) Можно идти по пути умножения, если у нас калькулятор на четыре действия арифметики. Вспомним, что 1024 байта (1 Кбайт) - это 2¹⁰ байт (поэтому они и "кило" байт). Забываем про байты, но получаем знание о том, что десятая степень двойки - это 1024. Умножаем 1024 само на себя, получая 1048576- это квадрат, т.е. 20-я степень. А дальше удваиваем, получая 2097152, 4194304, 8388608 и 16777216. Вот оно, наше число. Умножали 4 раза, значит окончательно степень 24. 24 бита делим на 8, получая 3 байта. б) Если у нас есть логарифмы, то решаем уравнение 2ⁿ=16777216. n = ㏒₂16777216 = 24. Кто не может вычислять логарифмы по основанию 2, тот вычисляет n=㏑(16777216)/㏑(2)
2. Теперь найдем, сколько же надо всего пикселей. 1600 х 1200 = 1920000. Немало, да еще каждый пиксель требует 3 байта на свой цвет. В целом все эти пиксели займут 1920000 х 3 = 5760000 байт.
3. Переведем полученный объем памяти в килобайты и мегабайты. 5760000 / 1024 = 5625 Кбайт. 5625 / 1024 ≈ 5.5 Мбайт.
4. Смотрим, что нам предлагают не ниже этих значений. Только 64 Мбайта. Придется брать такую карту, потому что 4 Мбайта не хватит.
Var a: Array [0..9] of Integer; n, min,max: Integer;
begin readln(n); min:=9; max:=0; while (n > 0) do begin inc(a[n mod 10]); if n mod 10<min then min:=n mod 10; if n mod 10>max then max:=n mod 10; n := n div 10; end;
for n := 0 to 9 do if a[n] = 3 then writeln('В числе есть 3 одинаковые',n); writeln('Максимальная цифра ',max); writeln('Минимальная цифра ',min);
end.
Тест для числа:
222778999 В числе есть 3 одинаковые 2 В числе есть 3 одинаковые 9 Максимальная цифра 9 Минимальная цифра 2
Те, кто немного "в теме" и так знают, что 16 млн. цветов - это "трехбайтный" цвет, когда на каждый канал RGB - красный, зеленый и синий отводится ровно один байт. А остальным придется немного повычислять.
a) Можно идти по пути умножения, если у нас калькулятор на четыре действия арифметики. Вспомним, что 1024 байта (1 Кбайт) - это 2¹⁰ байт (поэтому они и "кило" байт). Забываем про байты, но получаем знание о том, что десятая степень двойки - это 1024. Умножаем 1024 само на себя, получая 1048576- это квадрат, т.е. 20-я степень. А дальше удваиваем, получая 2097152, 4194304, 8388608 и 16777216. Вот оно, наше число. Умножали 4 раза, значит окончательно степень 24. 24 бита делим на 8, получая 3 байта.
б) Если у нас есть логарифмы, то решаем уравнение 2ⁿ=16777216.
n = ㏒₂16777216 = 24. Кто не может вычислять логарифмы по основанию 2, тот вычисляет n=㏑(16777216)/㏑(2)
2. Теперь найдем, сколько же надо всего пикселей.
1600 х 1200 = 1920000. Немало, да еще каждый пиксель требует 3 байта на свой цвет. В целом все эти пиксели займут 1920000 х 3 = 5760000 байт.
3. Переведем полученный объем памяти в килобайты и мегабайты.
5760000 / 1024 = 5625 Кбайт.
5625 / 1024 ≈ 5.5 Мбайт.
4. Смотрим, что нам предлагают не ниже этих значений. Только 64 Мбайта. Придется брать такую карту, потому что 4 Мбайта не хватит.
ответ: 64 Мбайта
a: Array [0..9] of Integer;
n, min,max: Integer;
begin
readln(n);
min:=9;
max:=0;
while (n > 0) do begin
inc(a[n mod 10]);
if n mod 10<min then min:=n mod 10;
if n mod 10>max then max:=n mod 10;
n := n div 10;
end;
for n := 0 to 9 do
if a[n] = 3 then writeln('В числе есть 3 одинаковые',n);
writeln('Максимальная цифра ',max);
writeln('Минимальная цифра ',min);
end.
Тест для числа:
222778999
В числе есть 3 одинаковые 2
В числе есть 3 одинаковые 9
Максимальная цифра 9
Минимальная цифра 2