Калькулятор сдачи

Модератор: [mweb team]

Калькулятор сдачи

Сообщение Padonak Пт янв 27, 2023 23:20

На буржуйском форуме попалась задача. Требуется создать функцию "калькулятор сдачи", которой передаётся число и требуется "разменять" это число монетами достоинством в 25, 10, 5 и 1. Необходимость брать максимум монет каждого достоинства не оговаривалась, но думается, что это логично.

result should be in this format:
changeCalculator(13);
// should return
{'10':1,'2':1,'1':1}


Мой вариант решения:

Код: Выделить всё
function changeCalculator(num){
   let res = {};
   [25, 10, 5, 1].forEach( x => num >= x ? (i = Math.floor(num / x), num -= x * i, res[`'${x}'`] = i) : null );
   return res;
   }
 
   console.log( changeCalculator(13) ); // {'10': 1, '1': 3}
   console.log('==============');
   console.log( changeCalculator(93) ); // {'25': 3, '10': 1, '5': 1, '1': 3}
   console.log('==============');
   console.log( changeCalculator(55) ); // {'25': 2, '5': 1}
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Вернуться в Javascript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron