Dame cambio Aprende programación con ejercicios Java

Lección:

Control del Flujo


Ejercicio:

Dame cambio 40


Objetivo:

Cree un programa de java para devolver el cambio de una compra, utilizando monedas (o billetes) lo más grandes posible. Supongamos que tenemos una cantidad ilimitada de monedas (o billetes) de 100, 50, 20, 10, 5, 2 y 1, y no hay decimales. Por lo tanto, la ejecución podría ser algo como esto:

¿Precio? 44
¿Pagado? 100
Su cambio es 56: 50 5 1
¿Precio? 1
¿Pagado? 100
Su cambio es 99: 50 20 20 5 2 2


Código:

import java.util.*;
public class Main
{
	public static void main(String[] args)
	{
		int price, paid, change;

		System.out.print("Price? ");
		price = Integer.parseInt(new Scanner(System.in).nextLine());
		System.out.print("Paid? ");
		paid = Integer.parseInt(new Scanner(System.in).nextLine());

		change = paid - price;
		System.out.printf("Your change is %1$s: ", change);
		while (change > 0)
		{
			if (change >= 50)
			{
				System.out.print("50 ");
				change -= 50;
			}
			else
			{
				if (change >= 20)
				{
					System.out.print("20 ");
					change -= 20;
				}
				else
				{
					if (change >= 10)
					{
						System.out.print("10 ");
						change -= 10;
					}
					else
					{
						if (change >= 5)
						{
							System.out.print("5 ");
							change -= 5;
						}
						else
						{
							if (change >= 2)
							{
								System.out.print("2 ");
								change -= 2;
							}
							else
							{
								System.out.print("1 ");
								change -= 1;
							}
						}
					}
				}
			}
		}
		System.out.println();
	}
}