Dame cambio Aprende programación con ejercicios C# Sharp

Lección:

Control del Flujo


Ejercicio:

Dame cambio 78


Objetivo:

Cree un programa de C# 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:

using System;
public class Exercise47
{
    public static void Main()
    {
        int price, paid, change;

        Console.Write("Price? ");
        price = Convert.ToInt32(Console.ReadLine());
        Console.Write("Paid? ");
        paid = Convert.ToInt32(Console.ReadLine());

        change = paid - price;
        Console.Write("Your change is {0}: ", change);
        while (change > 0)
        {
            if (change >= 50)
            {
                Console.Write("50 ");
                change -= 50;
            }
            else
            {
                if (change >= 20)
                {
                    Console.Write("20 ");
                    change -= 20;
                }
                else
                {
                    if (change >= 10)
                    {
                        Console.Write("10 ");
                        change -= 10;
                    }
                    else
                    {
                        if (change >= 5)
                        {
                            Console.Write("5 ");
                            change -= 5;
                        }
                        else
                        {
                            if (change >= 2)
                            {
                                Console.Write("2 ");
                                change -= 2;
                            }
                            else
                            {
                                Console.Write("1 ");
                                change -= 1;
                            }
                        }
                    }
                }
            }
        }
        Console.WriteLine();
    }
}