Вpascalabc.net. задана сумма денег в купюрах n. провести размен монетами, если в кассе есть n1 - штук по рублю, n2-штук по 2 рубля, n5-штук по 5 рублей, n10 - штук по 10 рублей
180
260
Ответы на вопрос:
"жадный" алгоритм // pascalabc.net 3.2, сборка 1417 от 28.03.2017 // внимание! если программа не работает, обновите версию! begin var k: =arr(1,2,5,10); // номиналы монет var m: =readarrinteger('кол-во монет по '+k.joinintostring+' руб: ',4); var n: =readinteger('сумма в купюрах, руб: '); if m.zip(k,(p,q)-> p*q).sum< n then begin // нехватка монет writeln('размен невозможен'); exit end; var s: =''; // для результатов for var i: =k.length-1 downto 0 do if (n> =k[i]) and (m[i]> 0) then begin // номинал участвует var t: =min(n div k[i],m[i]); // кол-во монет n: =n-k[i]*t; // остаток if s.length> 0 then s+=', '; s+=t+' по '+k[i]+' руб.'; end; if n< > 0 then writeln('размен невозможен') else writeln(s) end. примеры кол-во монет по 1 2 5 10 руб: 350 215 86 130 сумма в купюрах, руб: 1526 130 по 10 руб., 45 по 5 руб., 1 по 1 руб. кол-во монет по 1 2 5 10 руб: 500 146 0 38 сумма в купюрах, руб: 432 38 по 10 руб., 26 по 2 руб. кол-во монет по 1 2 5 10 руб: 10 20 30 40 сумма в купюрах, руб: 25000 размен невозможен
Class primes{ public static void main(string args[]){ boolean noprimes = true; java.util.scanner in = new java.util.scanner(system.in); searchprimes: for(int k = in. n = in.nextint(); k> =n; { for(int p = k/2; p> 1; (k%p==0)continue searchprimes; system.out.print(k+" "); noprimes = false; } if(noprimes)system.out.println("0"); } }
Популярно: Информатика
-
oolesyoooolesy17.06.2021 03:50
-
Viktoria20043003.06.2021 21:31
-
verinikamusia27.02.2022 10:58
-
atomis12.09.2021 01:09
-
daniilstepanov205.12.2020 18:31
-
нету3611.12.2020 01:37
-
Farida160104.09.2020 01:25
-
Cверхъестественное29.06.2020 23:58
-
11lol2228.02.2022 04:52
-
Dupper235607.08.2022 13:58