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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *