Оператор цикла WHILE ПАСКАЛЬ В некоторой стране используются денежные купюры достоинством в 1,2,4,8,16,32 и 64.дано натуральное число N.Как наименьшим количеством таких денежных купюр можно выплатить сумму N(указать количесво к...

Оператор цикла WHILE ПАСКАЛЬ В некоторой стране используются денежные купюры достоинством в 1,2,4,8,16,32 и 64.дано натуральное число N.Как наименьшим количеством таких денежных купюр можно выплатить сумму N(указать количесво каждой из используемых для выплаты купюр)? Предлагается, что имеется достаточно больше количесво купюр всех достоинство.
Гость
Ответ(ы) на вопрос:
Гость
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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы