999/2 = 498 +1
499/2 = 249 + 1
249/2 = 124 +1
124/2 = 62 + 0
62/2 = 31+ 0
31/2 = 15+1
15/2 = 7+1
7/2 = 3 + 1
3/2 = 1 + 1
999 = <span>1111100111
</span><span>10985 = </span>10101011101001
Воспользуемся методом потетрадного перевода из двоичной системы в шестнадцатеричную. Запишем 3 группы по 4 двоичных разряда в каждой. Наименьшее число будет содержать 7 нулей в старших разрядах, а наибольшее - в младших. Каждая группа переводится как цифра в шестнадцатеричную систему.
0000 0001 1111(2) = 01F(16) = 31(10) - наименьшее число.
1111 1000 0000(2) = F80(16) = 3968(10) - наибольшее число.
Var
i1, i2, i3, i4, i5, i6: byte;
k: Longint;
begin
for i1 := 0 to 9 do
for i2 := 0 to 9 do
for i3 := 0 to 9 do
for i4 := 0 to 9 do
for i5 := 0 to 9 do
for i6 := 0 to 9 do
if i1 + i2 + i3 = i4 + i5 + i6 then begin
Writeln(i1, i2, i3, i4, i5, i6);
k := k + 1;
end;
writeln(k);
end.
var
money: array[1..7]of integer;
count: array[1..7]of integer;
s, i: integer;
begin
money[1] := 1;
money[2] := 2;
money[3] := 5;
money[4] := 10;
money[5] := 50;
money[6] := 100;
money[7] := 500;
write('s = ');
readln(s);
i := 7;
repeat
if s >= money[i] then begin
s := s - money[i];
count[i] := count[i] + 1;
end
else i := i - 1;
until s <= 0;
for i := 7 downto 1 do
if count[i] > 0 then
writeln(money[i], ' p. = ', count[i], ' шт.')
end.
<span>информационный шум -это ответ</span>