Установите соответствие 4
Измерение -
яркость
Внешнего света
Измерение - свет
4
Измерение -
яркость
отраженного
света
126
449
Ответы на вопрос:
Такой вариант на простом паскале со стратегией жадность 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.
Популярно: Информатика
-
olegmelkov12.10.2020 21:06
-
bagfaver18.08.2020 12:48
-
ДанилКотик01.03.2020 03:58
-
vadimplay201715.02.2020 01:30
-
Jeka99030.01.2020 18:45
-
lisofoxi28.04.2021 00:12
-
layonel91107.01.2023 19:43
-
strelnikovavik24.08.2022 12:58
-
polozyurayuras04.12.2022 17:20
-
kopilovaolga09.03.2023 07:40