JavaScript - Convertir cantidad de dinero a monedas y billetes de distinta denominación

JavaScript: convertir dinero a monedas y billetes

Hoy vamos a resolver un ejercicio de JavaScript. Se trata de un programa para convertir un número en monedas y billetes de distinta denominación. El mismo dice así:

Escribe una función de JavaScript para convertir una cantidad X de dinero en monedas o billetes. A la función se le deben pasar los valores de las monedas y billetes en las que queremos cambiar mediante un array

Convirtiendo dinero a monedas y billetes

Veamos un ejemplo…

Entrada:

  • Número: 46
  • Denominaciones disponibles: 25, 10, 5, 2, 1

Salida: 25, 10, 10, 1

Básicamente sirve para saber cuántas monedas y billetes vas a usar si vas a dar una determinada cantidad de dinero.

Por ejemplo, supongamos que solo existen billetes de 20, 50 y 100 pesos. Si tuviera que dar 290 pesos daría 2 billetes de 100, 1 de 50 y 2 de 20.

Nota: aquí se prefiere dar primero los billetes o monedas más grandes.

Al ejecutar esto en el programa de JavaScript, la salida es: 100, 100, 50, 20, 20

Lo cual es correcto.

Explicación del algoritmo

Primero ordenamos el arreglo de las denominaciones disponibles para que quede ordenado de mayor a menor. Ahora nos enfocamos en la cantidad de dinero.

Recorremos las denominaciones disponibles y mientras la cantidad de dinero sea mayor o igual a la denominación actual, vamos a colocar esa denominación en una lista e ir restándola de la cantidad de dinero.

Al final vamos a terminar de recorrer todas las monedas y por lo tanto la cantidad de dinero llegará a 0. Finalmente regresamos las denominaciones usadas, mismas que tendrán los billetes y monedas que vamos a usar.

Nota: debemos garantizar que las denominaciones sean las suficientes para dar cualquier cantidad de dinero, pues si no, podríamos caer en un ciclo infinito.

Convertir dinero a monedas y billetes con JS

Entonces el código queda como se ve a continuación. He encerrado todo el comportamiento en una función:

Primero ordenamos las denominaciones (billetes y monedas) en la línea 7. Luego declaramos la lista de las monedas y billetes que vamos a usar en la línea 8.

Recorremos las denominaciones en la línea 9, y mientras la cantidad sea mayor o igual que la denominación actual, la agregamos a las monedas usadas con push (línea 11) además de restar esa denominación de la cantidad.

Finalmente regresamos las monedas y billetes usados en la línea 15. Todo esto programando con JavaScript.

Modo de uso

Finalmente veamos el modo de uso para ver el código completo. Queda como se ve a continuación:

Al momento de ejecutarlo la salida es correcta, es el ejemplo que usé al inicio:

JavaScript - Convertir cantidad de dinero a monedas y billetes de distinta denominación
JavaScript – Convertir cantidad de dinero a monedas y billetes de distinta denominación

Recuerda que como estamos programando en JavaScript esto puede correr en el servidor o en el cliente.

Para terminar te dejo con más tutoriales de JavaScript en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario