16 цветов кодируются 4 битами (2^4=16), т. е. при 256 Кб (килобит) может быть адресовано 256/16=16 К 16-цветных пикселей. Количество пикселей в экране будет В*Г (В - вертикальное разрешение, Г-горизонтальное) . При указанном соотношении 1,33 (4:3) будет верным равенство В*Г=(4/3)*В^2. Тогда В=Кв. Корень [(3/4)*16384/C] (16К=16384, С-количество страниц) . При С=1 выходит В=110.85... Ясное дело, вертикальное разрешение должно быть целым, т. е. это будет 110 или 111. Поскольку Г=В*4/3=147.8...,и горизонтальное разрешение тоже должно быть целым, выходит 147 или 148. Т. е. возможны разрешения 147*111 (всего 16317 пикселей из 16384 возможных) либо 148*110 (16280 пикселей) При С=2 выйдет В=78.38...,Г=104.51...,т. е. возможно разрешение 105*78 (всего 8190 пикселей из 8192 возможных) . Для разрешения 104*79 не хватит памяти, поскольку 8216>8192. При С=4 выйдет В=55.42...,Г=73.9...,т. е. возможны разрешения 74*55 (всего 4070 пикселей из 4096 возможных) или 73*56 (4088 из 4096).
Print("Введите n:")
n = int(input())
s = 0
for i in range(n+1):
s = s+i*i
print("s =",s)
Пример:
<span>Введите n: 3
s = 14</span>
В задании не указано, чем разделены группы в строке. Поэтому принято, что группа состоит из нулей и единиц, а разделителями групп может быть любое количество любых иных символов. Если это не так, просто вводите те символы-разделитеоли, каккие считаете нужными.
// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadlnString('Вводите:').MatchValues('[01]+')
.Where(s->s.Length.IsOdd).ToArray;
var b:=a.Select(w->w.ToCharArray.Where(c->c='1').Count).ToArray;
a.Zip(b,(p,q)->p+' - '+q).PrintLines
end.
1. 64х128=8,192 пикс. Выделенный объем делим на кол-во пикселей и получаем число бит на пиксел. Т.е., 3,072/8,172=0.375 байта. Т.е., примерно 3 бита. А 3 бита = 8 комбинаций (от 000 до 111). 8 цветов в палитре.
4*sqr(a)*sqr(b)*b*(sqr(a)+4*a*b+4*sqr(b))
или
4*sqr(a)*sqr(b)*b*sqr(a+2*b) - это если учесть, что а²+4ab+4b² = (a+2b)²