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. Тысячи путей ведут к заблуждению, к истине - только один. Для начала надо посчитать, сколько всего символов в данном предложении, следует считать знаки препинания и пробелы. Посчитав все знаки (Итого:57), мы получаем, что вес предложения 57 байт, переводим в биты, то есть умножаем на 8 (1 байт = 8 бит): 57*8=456.
№2. Кодировка Unicode - это кодировка, каждый символ которой весит 16 бит. Итак, я посчитала количество знаков в предложении (Итого:32). Дальше: 16*32=512 бит.
№3. Итак, мы видим, что из 16-битной кодировки получилась 8-битная, а это значит, что она уменьшилась вдвое. 8x=800 x=100 (у тебя ошибка, я посмотрела аналогичные задания, отличающиеся только значениями)
comp
Объяснение:
99-c
111-o
109-m
112-p