Proposed exercise
Create a C# program to return the change of a purchase, using coins (or bills) as large as possible. Assume we have an unlimited amount of coins (or bills) of 100, 50, 20, 10, 5, 2 and 1, and there are no decimal places. Thus, the execution could be something like this:
Price? 44
Paid? 100
Your change is 56: 50 5 1
Price? 1
Paid? 100
Your change is 99: 50 20 20 5 2 2
Output
Solution
using System;
public class GiveChange
{
public static void Main()
{
Console.Write("Price? ");
int price = Convert.ToInt32(Console.ReadLine());
Console.Write("Paid? ");
int paid = Convert.ToInt32(Console.ReadLine());
int change = paid - price;
Console.Write("Your change is {0}: ", change);
while ( change >= 50 )
{
Console.Write("50 ");
change -= 50;
}
while ( change >= 20 )
{
Console.Write("20 ");
change -= 20;
}
while ( change >= 10 )
{
Console.Write("10 ");
change -= 10;
}
while ( change >= 5 )
{
Console.Write("5 ");
change -= 5;
}
while ( change >= 2 )
{
Console.Write("2 ");
change -= 2;
}
while ( change >= 1 )
{
Console.Write("1 ");
change -= 1;
}
Console.WriteLine();
}
}