Предмет: Информатика, автор: Vanyasuper2000

Написать программу в Паскале: Вводятся два натуральных числа - N и S. Требуется напечатать по одному разу все варианты размена N монетами суммы в S рублей. Варианты, отличающиеся только порядком монет, считаются одинаковыми. Каждый вариант должен быть напечатан на отдельной строке. Имеются в неограниченном количестве монеты достоинством 1, 2, 5, 10 рублей.

Ответы

Автор ответа: BobbyFresnel
1

===== PascalABC.NET =====

begin

 var (s, n) := ReadInteger2('Введите S и N:');

 var r := 0;

 for var m10 := 0 to S div 10 do

 begin

   for var m5 := 0 to (S - 10 * m10) div 5 do

   begin

     if m10 + m5 > N then

       break;

     for var m2 := 0 to (S - 10 * m10 - 5 * m5) div 2 do

     begin

       if m10 + m5 + m2 > N then

         break;

       for var m1 := 0 to S - 10 * m10 - 5 * m5 - 2 * m2 do

       begin

         if m10 + m5 + m2 + m1 > N then

           break;  

         if (m10 * 10 + m5 * 5 + m2 *2 + m1 = s) and

           (m10 + m5 + m2+ m1 = N) then

         begin  

           $'{m10} x 10 + {m5} x 5 + {m2} x 2 + {m1} x 1'.Println;

           Inc(r)

         end

       end

     end

   end

 end;

 if r > 0 then

   Println('Найдено вариантов размена:', r)

 else

   Println('Вариантов такого размена нет')

end.


Vanyasuper2000: А где переменная N?
Похожие вопросы
Предмет: Русский язык, автор: wellywet
Предмет: История, автор: tanyakrivenko86
Предмет: Геометрия, автор: Shsbshzheb