static int[] numeroMoedas = {50,25,10,5,2,1};
static void Main(string[] args)
Console.WriteLine("Didite abaixo o valor a ser considerado");
valorParametro = int.Parse(Console.ReadLine());
Console.WriteLine( "Erro. Digite um numero entre 1 e 99.");
if (valorParametro >= 1 && valorParametro <= 99)
Console.WriteLine($"Calculando o menor número de moedas para {valorParametro} centavo(s)");
ImprimirMenorNumeroMoedasRecursivo(valorParametro, 0);
Console.WriteLine("O valor deve estar entre 1 e 99.");
static void ImprimirMenorNumeroMoedasRecursivo(int valor, int indiceMoeda)
int quantidadeMoedas = valor / numeroMoedas[indiceMoeda];
valor %= numeroMoedas[indiceMoeda];
if (quantidadeMoedas > 0)
Console.WriteLine($"{quantidadeMoedas} moeda(s) de {numeroMoedas[indiceMoeda]} centavos");
ImprimirMenorNumeroMoedasRecursivo(valor, indiceMoeda + 1);