0 / 0 / 0
Регистрация: 22.09.2016
Сообщений: 1
1

Напечатать достоинство всех монет, необходимых для получения заданной суммы (вывести все варианты)

12.05.2017, 22:53. Показов 1370. Ответов 2

Author24 — интернет-сервис помощи студентам
Написать программу, которая считывает денежную сумму напечатать достоинство всех монет, необходимых для получения этой суммы а так же вывести все возможные варианты.
Например
13 коп
1 - 10
3 - 1
или
13 - 1
или
6 - 1
1 - 5 и т.д.

Добавлено через 1 час 15 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Var i,sum:integer;
    mon:array [1..4] of integer ;
begin
mon[1]:=50;
mon[2]:=10;
mon[3]:=5;
mon[4]:=1;
Write('Введите число ');
Readln(sum);
for i:=1 to 4 do
if sum>=mon[i] then
begin
Writeln(mon[i],' = ',(sum div mon[i]));
sum:=sum - mon[i]*(sum div mon[i]);                         
end;               
end.
это решение для лучшей комбинации, а как сделать все красиво я не знаю((((
есть идея сделать через кучу ifов, но мне она кажется бредом...

Добавлено через 2 часа 30 минут
В общем, посидел я, подумал, и написал такую программу, посмотрите может что то можно сделать лучше, а может кому то пригодится...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var q50,q10,q5,q1, sum, Amount :integer;
 
BEGIN
  writeln('Введите сумму');
  readln(Amount);
  sum:= Amount;
      q50:= sum div 50;
      sum:= sum mod 50;
      q10:= sum div 10;
      sum:= sum mod 10;
      q5:= sum div 5;
      sum:= sum mod 5;
      q1:= sum div 1;
      sum:= sum mod 1;
  while Amount<> q1 do
   begin
    while q50 <> 0 do
      begin
          writeln(' 50 - ', q50, ';' ' 10 - ', q10, ';' ' 5 - ', q5, ';' ' 1 - ', q1);
          q50:= q50 - 1;
          q10:= q10 + 5;
      end;
    while q10 <> 0 do
      begin
          writeln(' 50 - ', q50, ';' ' 10 - ', q10, ';' ' 5 - ', q5, ';' ' 1 - ', q1);
          q10:= q10 - 1;
          q5:= q5 + 2;
      end;
    while q5 <> 0 do
      begin
          writeln(' 50 - ', q50, ';' ' 10 - ', q10, ';' ' 5 - ', q5, ';' ' 1 - ', q1);
          q5:= q5 - 1;
          q1:= q1 + 5;
      end;  
   end;
END.
0
12.05.2017, 22:53
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2017, 22:53
Ответы с готовыми решениями:

Для введенной пользователем суммы напечатать способ выдачи данной суммы наименьшим числом монет
Даны монеты, достоинством в 1, 2, 3, 5, 10, 15, 20, 50 коп. Составить программу, которая для введенной пользователем суммы печатает способ...

Получить все способы выплаты заданной суммы с помощью монет определенного достоинства
Некоторая сумма представлена в натуральным числом N. Получить все способы выплаты этой суммы с помощью монет достоинством a1, а2, ..., am.

Требуется напечатать по одному разу все варианты размена N монетами суммы в S рублей
Вводятся два натуральных числа - N и S. Требуется напечатать по одному разу все варианты размена N монетами суммы в S рублей. Варианты,...

2
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.05.2017, 01:32 2
Как вариант
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
begin
  var amount := ReadlnInteger('Введите число:');
  var n: array of integer := (50, 10, 5, 1);
  for var i := 0 to n.Length - 1 do begin
    var count := 0;
    while amount >= n[i] do begin
      count += 1;
      amount -= n[i];
    end;
    if count > 0 then
      writeln(Format('{0} - {1}', count, n[i]));
  end;
end.
0
Эксперт Pascal/Delphi
2387 / 1299 / 1492
Регистрация: 29.08.2014
Сообщений: 4,662
13.05.2017, 08:38 3
Hitoku, а все варианты где?

Добавлено через 3 минуты
Destiny1, не верное решение ввожу
Код
Введите сумму
17
 50 - 0; 10 - 1; 5 - 1; 1 - 2
 50 - 0; 10 - 0; 5 - 3; 1 - 2
 50 - 0; 10 - 0; 5 - 2; 1 - 7
 50 - 0; 10 - 0; 5 - 1; 1 - 12
не хватает
Код
 50 - 0; 10 - 1; 5 - 0; 1 - 7
 50 - 0; 10 - 0; 5 - 0; 1 - 17
Добавлено через 3 часа 26 минут
код не мой, но работает
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const n=4;
type arr=array[1..n] of integer;
var
  a:array[1..n] of integer=(1,5,10,50);
  b:arr;
function f(sm:integer;k:integer;t:arr):integer;
begin
  if sm=0 then begin
    Result:=1;
    for i:integer:=1 to n do writeformat('{0,4} - {1,4}; ',a[i],t[i]);
    writeln;
  end  
  else if (sm<0) or (k<1) then Result:=0 
  else while sm>=0 do begin
    Result:=Result+f(sm,k-1,t);
    sm:=sm-a[k];
    inc(t[k]);
  end;
end;
begin
  writeln('количество вариантов:',f(ReadlnInteger('Сумма='),n,b));
end.
1
13.05.2017, 08:38
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2017, 08:38
Помогаю со студенческими работами здесь

Напечатать TRUE для случая, если у всех монет выпал «орел»
Верно ли я выполнил решение задачи? _____________________________________ Переменные M1, M2 и M3 отражают итог подбрасывания трех монет...

Определить количество банкнот и монет для формирования заданной суммы денег
программа читает сумму s и пару цифр после точки. определяет и выводит количество банкнот и монет. для выражение суммы S.банкноты...

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

Рассчитать номиналы монет, необходимых для покупки.
Во вселенной Гарри Поттера Министерство магии провело экономическую реформу. Старые галеоны, сикли и кнаты ушли на покой, теперь монеты и...

Рассчитать сдачу для покупателя и количество мелких монет, необходимых для сдачи
Пользователь вводит стоимость и количество денег. Программа рассчитывает сдачу и количество мелких монет, необходимых для сдачи. В чём...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
Автоматическое создание файла requirements.tx­t в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
Отличия Constructor и ngOnInit в Angular
hw_wired 14.02.2025
Разработка компонентов в Angular - непростая задача, особенно когда дело доходит до правильной инициализации и управления их жизненным циклом. Каждый разработчик рано или поздно сталкивается с. . .
Ошибка "Transport security has blocked a cleartext HTTP" в iOS
hw_wired 14.02.2025
В iOS-разработке часто возникают неожиданные препятствия, и одним из самых распространенных является сообщение об ошибке "Transport security has blocked a cleartext HTTP". Эта ошибка появляется,. . .
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
Переименование коммита в Git (локального и удаленного)
hw_wired 13.02.2025
Git как система контроля версий предоставляет разработчикам множество средств для управления этой историей, и одним из таких важных средств является возможность изменения сообщений коммитов. Но зачем. . .
Отличия Promise и Observable в Angular
hw_wired 13.02.2025
В веб-разработки асинхронные операции стали неотъемлимой частью почти каждого приложения. Ведь согласитесь, было бы странно, если бы при каждом запросе к серверу или при обработке больших объемов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru