Условия: в некотором государстве в обращении находятся банкноты определенных номиналов. национальный банк хочет, чтобы банкомат выдавал любую запрошенную сумму при минимального числа банкнот, считая, что запас банкнот каждого номинала неограничен. национальному банку решить эту . входные данные: первая строка входных данных содержит натуральное число n, 0
152
206
Ответы на вопрос:
Такой вариант на простом паскале со стратегией жадность var n, s, i: integer; x: array[1..100]of integer; answer: string; begin readln(n); for i : = 1 to n do read(x[i]); readln(s); answer : = inttostr(s) + ' = '; for i : = n downto 1 do begin answer : = answer + inttostr(s div x[i]) + '*' + inttostr(x[i]); s : = s mod x[i]; if i > 1 then answer : = answer + ' + '; end; if s < > 0 then writeln('no') else writeln(answer); end. более полный и правильный вариант решения, но и куда более сложный //pascalabc.net 3.1 сборка 1200 uses system.collections.generic; uses system; var x : = new list< integer> ; c : = new list< tuple< string, integer> > ; procedure getparcelling(sum, step: integer; coefficients: string; count: integer); begin if step > = x.count then begin if sum = 0 then c.add((coefficients, count)); exit; end; if step < 0 then step : = 0; for var j : = 0 to (sum div x[step]) do begin var s : = ''; if j > 0 then begin if step > 0 then s += ' + '; s += inttostr(j) + '*' + inttostr(x[step]); end; getparcelling(sum - x[step] * j, step + 1, coefficients + s, count + j); end; end; begin x : = readarrinteger('x: ', readinteger('n ='; var sum : = readinteger('sum ='); getparcelling(sum, 0, '', 0); if c.count = 0 then writeln('no') else begin var min : = c.min(cc -> cc.item2); println(c.where(cc -> cc.item2 = min)); end; end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
ДарьяДуда15.03.2023 22:21
-
solnyshko4601.11.2021 13:16
-
лааллввлллаалв26.12.2021 05:20
-
kirillkislov22.08.2021 21:07
-
SVIATOSLAV300019.08.2022 06:59
-
Gogasg10.08.2020 20:16
-
Вова133722803.01.2021 18:12
-
Arsrezida30.08.2022 16:28
-
katherinepierce186412.03.2023 16:38
-
Sino4ka31.12.2020 14:21
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.