Loading...
arnold avatar arnold 50 Точки

Помощ за тази задача

Ако някой може да и хвърли едно око, не ми идва нищо като идея за съставяне на кодово решение, приемам всякакви насоки

 

Коя е най-малката възможна сума (например 12.03 лв), на която можем така да разместим цифрите (например 01.23 лв. и 10.32 и други), че минималния общ брой монети и банкноти, с които можем да я платим да се различава от началния? (в примера този брой е 4)

Тагове:
0
C# Advanced
MartinBG avatar MartinBG 4803 Точки
Best Answer

Първо ни трябва метод, с който да можем да намерим мин. брой монети/банкноти, с които може да се формира някаква сума. Стандартна задача, със сигурност има описани алгоритми в интернет, но и без тях лесно може да се измисли работещ алгоритъм.

 

После ни трябва метод, който да генерира всички възможни комбинации от числа, според зададеното (най-добре да ни ги връща сортирани от малко към голямо).

 

Като имаме тези два метода остава само да обходим комбинациите от числа и да сравним мин. брой монети/банкноти за всяка с броя на оригиналната сума.

2
12/06/2023 01:03:50
arnold avatar arnold 50 Точки

Проблемът е, че много трудно може да се направи на конзолно приложение при определен вход, да ти връща въпросната сума, с която да я платим. Ще съм много благодарен ако някоя успее да измисли такова.

 

Започнах с това, да си запазя банкнотите и монетите от българския лев представени в масив от decimals

 

decimal[] denominations = { 100, 50, 20, 10, 5, 2, 1, 0.5m, 0.2m, 0.1m , 0.05m, 0.02m, 0.01m};

1
12/06/2023 15:54:10
MartinBG avatar MartinBG 4803 Точки

decimal не е удачен тип за задачата, защото усложнява ненужно решението. По-лесно ще е, ако представим всички монети/банкноти с тяхната стойност в стотинки (1 лев = 100 ст, 50 ст = 50ст, 100 лв = 10000 стотинки и т.н.). После може да използваме някой от тези алгоритми или да разгледме какво друго може да намери Google по този въпрос

2
arnold avatar arnold 50 Точки

Благодаря, ще разгледам, но с тази май няма да се мъча повече, изисква много познания с алгоритми, тежка задача

1
Axiomatik avatar Axiomatik 2422 Точки

My recommendation is to at least try out some of the algorithms that MartinBG has provided you with. This will be the typical routine at any given IT workplace - you ask the seniors about a specific problems, they'll have a glance at it and provide you with some hints/directions and you have to take over from there and elucidate the given predicament.

 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.