1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Maski |
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Даны натуральные числа m1, m2 .. mi (m1=1, mi<m(i+1) n=10) и натуральное число S. Рассматривая mi как достоинства монет и считая, что монет каждого достоинства имеется в неограниченном количестве, определить, каким минимальным числом этих монет можно получить сумму S.
Помогите, кто знает plzzz. Я написал жадный алгоритм, но он не всегда работает. Подскажите, пожалуйста, как нужно пересортировывать элементы для общего решения или предложите чего-нибудь лучше. Очень необходимо |
![]() ![]() |
| Maski |
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
uses crt;
const mn=5; var a,b:array[1..mn]of integer; i:integer; flag:integer; procedure calc(summ:integer); var i,j,kol:integer; begin if flag=0 then if summ=0 then begin if flag=0 then begin kol:=0; flag:=-1; writeln('Result:'); for i:=1 to 5 do begin kol:=kol+b[i]; writeln(a[i],' - ',b[i]); end; write('VSEGO: ',kol); end; end else begin for i:=mn downto 1 do begin if summ-a[i]>=0 then begin b[i]:=b[i]+1; calc(summ-a[i]); b[i]:=b[i]-1; end; end; end; end; begin clrscr; for i:=1 to mn do read(a[i]); for i:=1 to mn do b[i]:=0; read(i); flag:=0; calc(i); readkey; end. Написана такая программа, но , например для варианта 1 3 5 7 10 и 14 она работает неправильно, никак не могу разобраться почему. Подскажите кто-нибудь, что нужно поправить, чтобы смотрелись все варианты точно. |
Maski Сумма монетами 9.12.2006 20:17
Алена Незначительная переделка вот этой программы даст т… 9.12.2006 21:00
Michael_Rybak Эта задача решается методом динамического программ… 9.12.2006 21:20
Алена Пример по ссылке, которую я привела, в этом случае… 9.12.2006 21:24
Michael_Rybak Ты спросила не контрпример к той программе, а конт… 9.12.2006 21:29
Алена Mr/ Michael_Rybak, и что? Где-то были указаны огра… 9.12.2006 21:34
Michael_Rybak
Нигде не были. Но полиномиальное решение всегда … 9.12.2006 21:41![]() ![]() |
|
Текстовая версия | 7.11.2025 8:29 |