public static void Main()
var result = ChangeMaking(11);
Console.WriteLine(string.Join(", ", result));
private static int ChangeMakingHelper(int input, int euro)
static readonly int[] euro = { 1, 2, 5, 10, 20, 50, 100, 200, 500 };
private static int[] ChangeMaking(int input)
var result = new int[euro.Length];
for (int i = euro.Length -1; i >= 0; i--)
result[i] += ChangeMakingHelper(input, euro[i]);
if (input % euro[i] != 0)
var tempResult = ChangeMaking(input % euro[i]);
for (int j = 0; j < result.Length; j++)
result[j] += tempResult[j];