Вопрос задан 27.06.2023 в 21:23. Предмет Информатика. Спрашивает Тамразян Анжелика.

Дано натуральное число n. Определить число способов выплаты суммы n рублей с помощью монет

достоинством 1, 2, 5 рублей и бумажных купюр достоинством 10 рублей, а также все способы выплаты. Язык паскаль, только цикл for и while,repeat.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Андрейко Павло.

Ответ:

как-то так

Объяснение:

var

n,s,k:integer;

begin

 writeln( 'введите n');

 readln(n);

 s:=0; k := 0;

 while s<=n do begin  

  s:=s+10; k:=k+10 end;

  s:=s-10;k:=k-10;

while s<=n do begin    s:=s+5; k:=k+4 end;

s:=s-5; k:=k-4;

while s<=n do begin s:=s+2;k:=k+2;end;

s:=s-2;k:=k-2;

 while s<=n do begin s:=s+1;k:=k+1;end;

 s:=s-1; k:=k-1;

 writeln ('сумма',n,' получена', k,'способами ','получившаеся набранная сумма для проверки',s)

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам нужно использовать жадный алгоритм. Вы будете поочередно вычитать из суммы n наибольшую доступную монету или купюру, начиная с наибольшей и двигаясь к наименьшей, пока не достигнете нулевой суммы. При этом вам нужно будет подсчитывать количество способов выплаты суммы n и записывать все комбинации монет и купюр.

Вот пример решения этой задачи на языке Pascal с использованием цикла repeat:

pascal
program CountWaysToPay; var n, temp, count: integer; begin write('Введите сумму (n): '); readln(n); writeln('Все способы выплаты:'); count := 0; temp := n; repeat if temp >= 10 then begin writeln('Выдать 10 рублей'); temp := temp - 10; end else if temp >= 5 then begin writeln('Выдать 5 рублей'); temp := temp - 5; end else if temp >= 2 then begin writeln('Выдать 2 рубля'); temp := temp - 2; end else begin writeln('Выдать 1 рубль'); temp := temp - 1; end; count := count + 1; until temp = 0; writeln('Общее количество способов выплаты: ', count); end.

Этот код сначала запрашивает у пользователя сумму n, затем использует жадный алгоритм для определения способов выплаты и выводит их на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос