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.
В данном тексте встречается не так много различных прописных букв – это все буквы, входящие в заголовок (Ш, А, Л, Т, Й, Б, О) и первые буквы строк (С, В, Н). Какая из них может встречаться один раз. Не трудно заметить, что это не Ш и не Б (они встречаются слишком часто), а также не С, не В и не Н (они встречаются в стихотворении попарно), значит, это какая-то из оставшихся букв заголовка и не трудно догадаться, что О. Три раз встречается строчная буква и. Три раза встречается прописная буква А. Десять раз встречается строчная буква е.