Var m : array[0..6] of Integer; i,k,N : Integer; Begin For i:=0 to 6 do m[i]:=0; Readln(N); k:=6; While N>0 do Begin If N>=Power(2,k) then Begin N:=N-Trunc(Power(2,k)); Inc(m[k]); end else Dec(k); end; For i:=0 to 6 do Writeln(Power(2,i),' ',m[i],' шт.'); end.
Еще вариант: Const NN = 7; money : array[1..7] of Integer = (1,2,4,8,16,32,64); Var m : array[1..NN] of Integer; i,k,N : Integer; Begin For i:=1 to NN do m[i]:=0; Readln(N); k:=NN; While N>0 do Begin If N>=money[k] then Begin N:=N-money[k]; Inc(m[k]); end else Dec(k); end; For i:=1 to NN do Writeln(money[i],' ',m[i],' шт.'); end.
1) Определяем общее количество бит: 16 х 640 х 480 = 4 915 200 С учетом того, что в байте 8 бит, а 1 КБ=1024 Б получим 4 915 200 / 8 / 1024 = 600 (КБ)
2) Определяем общее количество бит с учетом того, что в палитре True Color для цвета отводится 24 бита: 1600 х 1200 х 24 = 46 080 000 (бит). После преобразования файла для Интернет он будет представлен в восьмибитной палитре ( 256 = 2⁸ ) и займет объем 1400 х 900 х 256 = 10 080 000 (бит). Разница в объемах составит 46 080 000 - 10 080 000 = 36 000 000 бит. С учетом того, что в байте 8 бит, а в мегабайте 1024 х 1024 байт получим, что пространство на диске сократиться на 36 000 000 / (8 х 1024 х 1024) ≈ 4.29 (МБ)
begin;
k:=1;
for i:=19 to 64 do
k:=k*i;
write(k);
end.