No internet connection
  1. Home
  2. Exercícios do Beecrowd

Exercício 1021

Por Gabriele Martins Pereira @gabi.mp
    2022-11-17 20:05:44.219Z2022-11-19 14:20:27.448Z

    Já tentei submeter o exerício 1021 de varias formas diferentes. Já resolvi com ifs e fors, sem ifs e fors, e ainda assim o beecrowd não aceita. Os códigos funcionaram perfeitamente no terminal, porém recebo 100% de resposta errada no beecrowd. Alguém conseguiu fazer esse com o beecrowd aceitando?

    Resolvido no post #26, clique para visualizar

    Linked from:

    1. Exercício 1021
    • 35 respostas

    There are 35 replies. Estimated reading time: 34 minutes

    1. Gabriele Martins Pereira @gabi.mp
        2022-11-19 14:20:38.255Z

        Bom, com a solução proposta pelo professor Hugo, funcionou:

        using System;
        
        namespace Variaveis {
        
            public class Program {
        
                public static void Main(string[] args) {
        
                    double vlr = double.Parse(Console.ReadLine());
        
                    int n100, n50, n20, n10, n5, n2;
        
                    n100 = (int)(vlr / 100);
                    vlr -= 100 * n100;
        
                    n50 = (int)(vlr / 50);
                    vlr -= 50 * n50;
        
                    n20 = (int)(vlr / 20);
                    vlr -= 20 * n20;
        
                    n10 = (int)(vlr / 10);
                    vlr -= 10 * n10;
        
                    n5 = (int)(vlr / 5);
                    vlr -= 5 * n5;
        
                    n2 = (int)(vlr / 2);
                    vlr -= 2 * n2;
        
                    int m100, m50, m25, m10, m5;
                    vlr *= 100;
        
                    m100 = (int)(vlr / 100);
                    vlr -= 100 * m100;
        
                    m50 = (int)(vlr / 50);
                    vlr -= 50 * m50;
        
                    m25 = (int)(vlr / 25);
                    vlr -= 25 * m25;
        
                    m10 = (int)(vlr / 10);
                    vlr -= 10 * m10;
        
                    m5 = (int)(vlr / 5);
                    vlr -= 5 * m5;
        
                    Console.WriteLine("NOTAS:");
                    Console.WriteLine($"{n100} nota(s) de R$ 100.00");
                    Console.WriteLine($"{n50} nota(s) de R$ 50.00");
                    Console.WriteLine($"{n20} nota(s) de R$ 20.00");
                    Console.WriteLine($"{n10} nota(s) de R$ 10.00");
                    Console.WriteLine($"{n5} nota(s) de R$ 5.00");
                    Console.WriteLine($"{n2} nota(s) de R$ 2.00");
                    Console.WriteLine("MOEDAS:");
                    Console.WriteLine($"{m100} moeda(s) de R$ 1.00");
                    Console.WriteLine($"{m50} moeda(s) de R$ 0.50");
                    Console.WriteLine($"{m25} moeda(s) de R$ 0.25");
                    Console.WriteLine($"{m10} moeda(s) de R$ 0.10");
                    Console.WriteLine($"{m5} moeda(s) de R$ 0.05");
                    Console.WriteLine($"{vlr:F0} moeda(s) de R$ 0.01");
        
                }
        
            }
        
        }
        
        1. Lucas Ferreira @lksferreira
            2022-11-22 23:12:03.514Z

            Hello Gabi ^^,

            Legal a iniciativa, estou disponibilizando a minha solução e explicando a lógica por trás do pensamento, eu sempre digo que quanto mais legível o código melhor.

                private static void Main(string[] args)
                {   
                    /**
                    1021 - Notas e Moedas
                    https://www.beecrowd.com.br/judge/pt/problems/view/1021
                    */
            
                    // Recebe um valor double do usuário e guarda esse valor na variável valorInserido.
                    double valorInserido = double.Parse(Console.ReadLine());
            
                    // Guarda apenas a parte inteiro do valor double na variável valorNotas.
                    int valorNotas = (int)(valorInserido);
            
                    // Para tabalhar com as moedas iremos subtrair o inserido do valor inteiro e multiplicar por 100 para manipula-lo com inteiro.
                    // Exemplo: R$250,57 - 250 = 0,57 // 0,57 * 100 // 57 -> Agora manipularemos a parte decimal como um inteiro.
            
                    // Lógica por trás da moeda
            
                    // Ao multiplicar o um decimal por 100 podemos tratar o valor como inteiro.
                    // Pense assim: Ao invez de ler uma como como 0,50 de Real, iremos ler ela como 50 centavos.
                    double moedasConvertidas = Math.Floor((valorInserido - valorNotas)*100);
            
            
                    //Remove todas as possíveis casa do número infinitéssimo gerado na manipulação dos números.
                    int valorMoedas = (int)moedasConvertidas;
            
                    //Agora replicamos a lógica de cima em pequenos blocos dos valores que queremos obter.
            
                    //Obtem as notas de 100
                    int notas100 = valorNotas/100;
                    valorNotas -= notas100*100;
            
                    //Obtem as notas de 50
                    int notas50 = valorNotas/50;
                    valorNotas -= notas50*50;
            
                    //Obtem as notas de 20
                    int notas20 = valorNotas/20;
                    valorNotas -= notas20*20;
            
                    //Obtem as notas de 10
                    int notas10 = valorNotas/10;
                    valorNotas -= notas10*10;
            
                    //Obtem as notas de 5
                    int notas5= valorNotas/5;
                    valorNotas -= notas5*5;
            
                    //Obtem as notas de 2
                    int notas2 = valorNotas/2;
                    valorNotas -= notas2*2;
            
                    //Obtem as notas de 1
                    int moeda1 = valorNotas/1;
                    valorNotas -= moeda1*1;
            
                    //Obtem as moedas de 50
                    int moeda50 = valorMoedas/50;
                    valorMoedas -= (moeda50*50);
            
                    //Obtem as moedas de 25
                    int moeda25 = valorMoedas/25;
                    valorMoedas -= moeda25*25;
            
                    //Obtem as moedas de 10
                    int moeda10 = valorMoedas/10;
                    valorMoedas -= moeda10*10;
            
                    //Obtem as moedas de 05
                    int moeda05 = valorMoedas/05;
                    valorMoedas -= (moeda05*05);
            
                    //Obtem as moedas de 1
                    int moeda01 = valorMoedas/1;
                    valorMoedas -= moeda01*1;
            
                    Console.WriteLine("NOTAS:");
                    Console.WriteLine($"{notas100} nota(s) de R$ 100.00");
                    Console.WriteLine($"{notas50} nota(s) de R$ 50.00");
                    Console.WriteLine($"{notas20} nota(s) de R$ 20.00");
                    Console.WriteLine($"{notas10} nota(s) de R$ 10.00");
                    Console.WriteLine($"{notas5} nota(s) de R$ 5.00");
                    Console.WriteLine($"{notas2} nota(s) de R$ 2.00");
                    Console.WriteLine("MOEDAS:");
                    Console.WriteLine($"{moeda1} moeda(s) de R$ 1.00");
                    Console.WriteLine($"{moeda50} moeda(s) de R$ 0.50");
                    Console.WriteLine($"{moeda25} moeda(s) de R$ 0.25");
                    Console.WriteLine($"{moeda10} moeda(s) de R$ 0.10");
                    Console.WriteLine($"{moeda05} moeda(s) de R$ 0.05");
                    Console.WriteLine($"{moeda01} moeda(s) de R$ 0.01");
            }
            
            1. Lucas, obrigadaaaaaa! Que resposta maravilhosa! Eu tava penando muito, e tu respondeu até com os comentários explicando tudinho! Me ajudou muito a entender, obrigada mesmo :)
              !

          • Em resposta agabi.mp:
            Gabriel de Araújo Santos @gabrielSantos
              2022-11-18 00:08:51.542Z2022-11-18 00:15:28.116Z

              eu entendi o problema, é coisa besta. inves de escrever por exemplo " 100,00" escreve "100.00 "
              Isso para todas as respostas

              1. Gabriele Martins Pereira @gabi.mp
                  2022-11-18 14:37:35.888Z

                  também to achando que é isso, vou tentar mudar alguma coisa pra ver se funciona!

                • F
                  Em resposta agabi.mp:
                  Fábio Teixeira @fabiotbraga
                    2022-11-17 20:26:08.812Z

                    Eu consegui fazer, mas não utilizei if nem for para isso

                    1. FFábio Teixeira @fabiotbraga
                        2022-11-17 20:27:19.786Z

                        É bom checar se a resposta está 100% no formato que é pedido

                        1. Gabriele Martins Pereira @gabi.mp
                            2022-11-17 20:37:44.026Z

                            Eu chequei e ta certinho, porém nao sei pq o beecrowd nao aceita.

                            1. FFábio Teixeira @fabiotbraga
                                2022-11-17 20:40:26.974Z

                                Vc está usando decimal ou double na entrada? Estou usando decimal.

                                1. FFábio Teixeira @fabiotbraga
                                    2022-11-17 20:41:58.778Z

                                    Eu li que para dinheiro, decimal é recomendado

                                    1. Gabriele Martins Pereira @gabi.mp
                                        2022-11-17 20:45:58.299Z

                                        Estava usando o double mesmo, vou tentar com decimal.

                                        1. Acabei de submeter no Beecrowd, ele aceitou o meu. Eu fiz com "for", mas o que pega la é que ele quer exatamente do jeito que eles mostram no exercicio, cada ponto, cada espaço e virgula
                                          (Eu tive que dar uma "roubadinha para o output ficar iguall o do beecrowd kkkk)

                                          esse é o meu codigo que eu submeti pra quem quiser olhar:

                                          double value = double.Parse(Console.ReadLine());

                                                  double[] notas = { 100, 50, 20, 10, 5, 2, 1 };
                                                  double[] moedas = { 50, 25, 10, 5, 1 };
                                          
                                                  double quantidadeNotas = 0;
                                                  double quantidadeMoedas = 0;
                                                  double restanteNotas = Math.Truncate(value);
                                                  double cents = (value - Math.Truncate(value)) * 100;
                                          
                                          
                                                  Console.WriteLine($"NOTAS:");
                                                  for (int i = 0; i <= notas.Length - 1; i++)
                                                  {
                                          
                                                      if (i == notas.Length - 1)
                                                      {
                                                          Console.WriteLine($"MOEDAS:");
                                                          quantidadeNotas = Math.Floor(restanteNotas / notas[i]);
                                                          restanteNotas = restanteNotas - quantidadeNotas * notas[i];
                                                          Console.WriteLine($"{quantidadeNotas} moeda(s) de R$ {notas[i]:F2}");
                                          
                                                      }
                                                      else
                                                      {
                                                          quantidadeNotas = Math.Floor(restanteNotas / notas[i]);
                                                          restanteNotas = restanteNotas - quantidadeNotas * notas[i];
                                                          Console.WriteLine($"{quantidadeNotas} nota(s) de R$ {notas[i]:F2}");
                                                      }
                                                  }
                                          
                                                  for (int i = 0; i <= moedas.Length - 1; i++)
                                                  {
                                                      quantidadeMoedas = Math.Floor(cents / moedas[i]);
                                                      cents = cents - quantidadeMoedas * moedas[i];
                                                      Console.WriteLine($"{quantidadeMoedas} moeda(s) de R$ {moedas[i] / 100:F2}");
                                                  }
                                          
                                          1. FFábio Teixeira @fabiotbraga
                                              2022-11-17 21:44:36.859Z

                                              Interessante, Preferi não usar for ou if pois acho que seria demais nessas questões iniciais.
                                              Se quiser, vc pode usar o (int) para trabalhar com os valores, pra não ficar roubando kkkk. Tipo: var cem = (int)x / 100;
                                              Esse (int) na frente do x, passa os valores para int e não sai quebrada a divisão. Pode usar assim quando for de double para int

                                              1. Em resposta agabrielSantos:
                                                Gabriele Martins Pereira @gabi.mp
                                                  2022-11-17 21:48:25.449Z

                                                  Vou dar uma olhada direito na sua solução, mas muitoooo obrigada viu!

                                                  1. Em resposta agabrielSantos:

                                                    Bem interessante Gabriel a forma com que vc pensou e fez, uma alternativa bem estruturada

                                      • A
                                        Em resposta agabi.mp:
                                        Alexandre Lima @alexandre
                                          2022-11-17 23:30:43.832Z

                                          Gabi, eu também estava travado neste código. Até que percebi que no debug do código submetido estava dando problemas de precisão:

                                          Pelo que entendo, a saída do meu código é o que é precedido de ***, e o a solução o que possui ----. Note que pra R$11,14 no meu código ele estava retornando 15 centavos (o que não era pra acontecer). Já no da solution, ele estava retornando 16 centavos (o que também não era pra acontecer).

                                          Foi aí que percebi que havia um problema de precisão, e substituí todos as variáveis do tipo double do meu código para o tipo decimal. Quando fiz isso, o código foi aceito.

                                          Vou deixar meu código abaixo:

                                          using System;
                                          
                                          class URI
                                          {
                                          
                                              static void Main(string[] args)
                                              {
                                          
                                                  decimal value = decimal.Parse(Console.ReadLine());
                                                  decimal totalRest = value;
                                          
                                                  int[] bankNotes = new int[]{
                                                      100, 50, 20, 10, 5, 2
                                                  };
                                                  decimal[] bankCoins = new decimal[]{
                                                     1.00M, 0.50M, 0.25M, 0.10M, 0.05M, 0.01M
                                                  };
                                          
                                                  Console.WriteLine("NOTAS:");
                                                  foreach (int bankNote in bankNotes)
                                                  {
                                                      totalRest = ProccessNotes(totalRest, bankNote);
                                                  }
                                          
                                                  Console.WriteLine("MOEDAS:");
                                                  foreach (decimal bankCoin in bankCoins)
                                                  {
                                                      totalRest = ProccessCoins(totalRest, bankCoin);
                                                  }
                                              }
                                          
                                              static decimal ProccessNotes(decimal decrease, decimal bankNote)
                                              {
                                                  int amount = (int)(decrease / bankNote);
                                          
                                                  Console.WriteLine($"{amount} nota(s) de R$ {bankNote:F2}");
                                          
                                                  decimal rest = decrease - (amount * bankNote);
                                                  return rest;
                                              }
                                          
                                              static decimal ProccessCoins(decimal decrease, decimal bankCoin)
                                              {
                                                  int amount = (int)(decrease / bankCoin);
                                          
                                                  Console.WriteLine($"{amount} moeda(s) de R$ {bankCoin:F2}");
                                          
                                                  decimal rest = decrease - (amount * bankCoin);
                                                  return rest;
                                              }
                                          
                                          }
                                          

                                          Espero que ajude.

                                          1. Gabriele Martins Pereira @gabi.mp
                                              2022-11-17 23:38:09.615Z

                                              Consegui achar aqui essa descrição de erro. Também estava tentando com double, mas fiquei de tentar trocando pra decimal. Porém um dos erros que obtive foi esse:

                                              Se puder me ajudar a interpretar ele... Acredito que nem a solução do beecrowd está aparecendo!

                                              1. AAlexandre Lima @alexandre
                                                  2022-11-17 23:49:22.293Z

                                                  Realmente, não tá aparecendo a solução do beecrowd. Mas aparentemente, pra R$1,14 ele está recebendo 18 notas de R$100,00. '-'

                                                  No seu terminal está calculando certinho?

                                                  1. Gabriele Martins Pereira @gabi.mp
                                                      2022-11-17 23:52:39.417Z

                                                      Rodou bonitinho

                                                    • Em resposta agabi.mp:

                                                      Voce pode mandar seu codigo gabi?

                                                      1. Gabriele Martins Pereira @gabi.mp
                                                          2022-11-17 23:46:40.074Z

                                                          tentei trocar tudo pra decimal e agr cai em outro erro, dois min, vou tentar mais um pouco, ja já jogo aqui.

                                                          1. Em resposta agabrielSantos:
                                                            Gabriele Martins Pereira @gabi.mp
                                                              2022-11-17 23:50:09.068Z

                                                              Agr deu wrong answer (10%) sem mostrar aquela descrição de erro! Dor e sofrimento! kkkkkkkkk
                                                              Bom, meu código está assim:

                                                              using System; 
                                                              class URI {
                                                                  static void Main(string[] args) { 
                                                                      decimal valor=decimal.Parse(Console.ReadLine());
                                                                      int nota100=0,nota50=0,nota20=0,nota10=0,nota5=0,nota2=0,moeda100=0,moeda50=0,moeda25=0,moeda10=0,moeda5=0,moeda1=0;
                                                                      for(int i=0; valor>0m; i++){
                                                                          if(valor>=100.0m){
                                                                              valor-=100.0m;
                                                                              nota100++;
                                                                          }
                                                                          else if(valor>=50.0m){
                                                                              valor-=50.0m;
                                                                              nota50++;
                                                                          }
                                                                          else if(valor>=20.0m){
                                                                              valor-=20.0m;
                                                                              nota20++;
                                                                          }
                                                                          else if(valor>=10.0m){
                                                                              valor-=10.0m;
                                                                              nota10++;
                                                                          }
                                                                          else if(valor>=5.0m){
                                                                              valor-=5.0m;
                                                                              nota5++;
                                                                          }
                                                                          else if(valor>=2.0m){
                                                                              valor-=2.0m;
                                                                              nota2++;
                                                                          }
                                                                          else if(valor>=1.0m){
                                                                              valor-=1.0m;
                                                                              moeda100++;
                                                                          }
                                                                          else if(valor>=0.50m){
                                                                              valor-=0.50m;
                                                                              moeda50++;
                                                                          }
                                                                          else if(valor>=0.25m){
                                                                              valor-=0.25m;
                                                                              moeda25++;
                                                                          }
                                                                          else if(valor>=0.10m){
                                                                              valor-=0.10m;
                                                                              moeda10++;
                                                                          }
                                                                          else if(valor>=0.05m){
                                                                              valor-=0.05m;
                                                                              moeda5++;
                                                                          }
                                                                          else if(valor>=0.01m){
                                                                              valor-=0.01m;
                                                                              moeda1++;
                                                                          }
                                                                          else{
                                                                              valor=0.0m;
                                                                          }
                                                                      }
                                                                      Console.WriteLine("NOTAS:");
                                                                      Console.WriteLine("{0} nota(s) de R$ 100,00",nota100);
                                                                      Console.WriteLine("{0} nota(s) de R$ 50,00",nota50);
                                                                      Console.WriteLine("{0} nota(s) de R$ 20,00",nota20);
                                                                      Console.WriteLine("{0} nota(s) de R$ 10,00",nota10);
                                                                      Console.WriteLine("{0} nota(s) de R$ 5,00",nota5);
                                                                      Console.WriteLine("{0} nota(s) de R$ 2,00",nota2);
                                                                      Console.WriteLine("MOEDAS:");
                                                                      Console.WriteLine("{0} moeda(s) de R$ 1,00",moeda100);
                                                                      Console.WriteLine("{0} moeda(s) de R$ 0,50",moeda50);
                                                                      Console.WriteLine("{0} moeda(s) de R$ 0,25",moeda25);
                                                                      Console.WriteLine("{0} moeda(s) de R$ 0,10",moeda10);
                                                                      Console.WriteLine("{0} moeda(s) de R$ 0,05",moeda5);
                                                                      Console.WriteLine("{0} moeda(s) de R$ 0,01",moeda1);
                                                                  }
                                                              }
                                                              
                                                              1. André Filipe @andresantos
                                                                  2022-11-18 05:31:16.748Z

                                                                  => Você poderia substituir as declarações de notas por um array double (100, 50, ...)

                                                                  => Ao invés de usar todos esses ifs, seria melhor trocar a lógica, pois bastaria, no máximo 2 condicionais. A intenção do laço de repetição é eliminar repetições de código.

                                                                  => Há 14 impressões que poderiam ser substituídas por apenas 2: um Console.WriteLine para 'NOTAS' ou 'MOEDAS' e outro para cada respectiva quantidade.

                                                                  => A lógica a que me refiro seria essa: iterar sobre o array supracitado e, pra cada valor (notas ou moedas) obter a parte inteira e a decimal. Para a inteira, você poderia usar o 'Math.Truncate()' e para o resto você poderia usar o módulo (ex.: 10 % 3 = 1)

                                                                  => Fazendo isso, seu código não passará de 25 linhas.

                                                                  1. Gabriele Martins Pereira @gabi.mp
                                                                      2022-11-18 14:38:44.719Z

                                                                      Opa, verdade! Da pra dar uma resumida! Muito obrigada viu!

                                                                    • Em resposta agabi.mp:
                                                                      AAlexandre Lima @alexandre
                                                                        2022-11-17 23:52:08.087Z

                                                                        A descrição do debug não mostra na hora. Tem que esperar um tempinho. Uns 3~5 minutos.

                                                                    • Em resposta agabi.mp:
                                                                      JJeferson Kindrajh @Jefersonk
                                                                        2022-11-24 23:47:04.592Z

                                                                        o meu deu o mesmo problema, o resto teria que dar 0,14, porém dá 0,139999999, por isso ele entende como apenas 3 moedas de 1 centavo

                                                                    • Em resposta agabi.mp:
                                                                      Fernando Bruno S L @FernandoBruno
                                                                        2022-11-22 12:13:26.451Z

                                                                        Fiz de uma forma mais "arcaica" e deu certo no VS, porém 0% no Beecrowd :/ Considerei a forma que eu havia respondido a questão 1018 para fazer ela e deu certo. Mas queria entender pq no Bee nao dá...

                                                                        // Bee 1021 - Notas e moedas
                                                                        using System;
                                                                        using System.Globalization;
                                                                        
                                                                        namespace Bee1021_Notas_e_Moedas
                                                                        {
                                                                            public class Program
                                                                            {
                                                                                public static void Main(string[] args)
                                                                                {
                                                                                    /* - ler valor flutuante (valor monetario)
                                                                                     * calcular o menor numero de notas e moedas possiveis
                                                                                     * mostras a relacao de notas necessárias */
                                                                        
                                                                                    // variables
                                                                                    double valorMonetario, notas, moedas;
                                                                        
                                                                                    // input
                                                                                    valorMonetario = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
                                                                        
                                                                                    // code
                                                                                    Console.WriteLine("NOTAS:");
                                                                                    notas = (int) (valorMonetario / 100);
                                                                                    valorMonetario = valorMonetario % 100;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 100.00");
                                                                                    notas = (int) (valorMonetario / 50);
                                                                                    valorMonetario = valorMonetario % 50;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 50.00");
                                                                                    notas = (int) (valorMonetario / 20);
                                                                                    valorMonetario = valorMonetario % 20;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 20.00");
                                                                                    notas = (int) (valorMonetario / 10);
                                                                                    valorMonetario = valorMonetario % 10;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 10.00");
                                                                                    notas = (int) (valorMonetario / 5);
                                                                                    valorMonetario = valorMonetario % 5;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 5.00");
                                                                                    notas = (int) (valorMonetario / 2);
                                                                                    valorMonetario = valorMonetario % 2;
                                                                                    Console.WriteLine($"{notas} nota(s) de R$ 2.00");
                                                                        
                                                                                    Console.WriteLine("MOEDAS:");
                                                                                    moedas = (int) (valorMonetario / 1.00);
                                                                                    valorMonetario = valorMonetario % 1.00;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 1.00");
                                                                                    moedas = (int) (valorMonetario / 0.50);
                                                                                    valorMonetario = valorMonetario % 0.50;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 0.50");
                                                                                    moedas = (int) (valorMonetario / 0.25);
                                                                                    valorMonetario = valorMonetario % 0.25;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 0.25");
                                                                                    moedas = (int) (valorMonetario / 0.10);
                                                                                    valorMonetario = valorMonetario % 0.10;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 0.10");
                                                                                    moedas = (int) (valorMonetario / 0.05);
                                                                                    valorMonetario = valorMonetario % 0.05;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 0.05");
                                                                                    moedas = (int) (valorMonetario / 0.01);
                                                                                    valorMonetario = valorMonetario % 0.01;
                                                                                    Console.WriteLine($"{moedas} moeda(s) de R$ 0.01");
                                                                                }
                                                                            }
                                                                        }
                                                                        
                                                                        1. Fernando Bruno S L @FernandoBruno
                                                                            2022-11-22 12:14:09.485Z

                                                                            A saída no VS:

                                                                          • Em resposta agabi.mp:
                                                                            Fernando Bruno S L @FernandoBruno
                                                                              2022-11-22 12:15:11.743Z

                                                                              O beecrowd:

                                                                              1. Fernando Bruno S L @FernandoBruno
                                                                                  2022-11-22 12:16:45.533Z

                                                                                  Acho que foi o mesmo erro que a Gabi teve acima, mas não to conseguindo interpretar

                                                                                  1. André Filipe @andresantos
                                                                                      2022-11-22 14:41:19.330Z

                                                                                      Observe que a última moeda é a de R$0,01. Ela é indivisível! Assim, a divisão e módulo da divisão deve ser feitos apenas até a moeda de R$0,05.
                                                                                      Exercício 1021 #post-26

                                                                                  2. Em resposta agabi.mp:
                                                                                    Fernando Bruno S L @FernandoBruno
                                                                                      2022-11-22 19:55:35.549Z

                                                                                      consegui resolver!! quando divide por numeros de double, o resultado pode ser com varias casas decimais e nao arredondar, sobrando numero para outra divisao ne.

                                                                                      // ajustar valor para dividir por numero sem casas decimais e evitar erro no calculo
                                                                                      valorMonetario = valorMonetario * 100;

                                                                                      fiz esse ajuste antes de comecar moedas, e multipliquei as moedas tbm por 100 para tirar as casas decimais, e deu bom!

                                                                                      1. Em resposta agabi.mp:
                                                                                        Pedro Lucas @pedrolucas
                                                                                          2022-11-22 21:27:07.901Z

                                                                                          Gabriele, meu Beecrowd também tá retornando erro e eu fiz dessa forma:

                                                                                          using System;
                                                                                          
                                                                                          namespace NotasMoedas {
                                                                                              class Program {
                                                                                                  static void Main(string[] args) {
                                                                                                      double valor = double.Parse(Console.ReadLine());
                                                                                          
                                                                                                      Console.WriteLine($"NOTAS:");
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 100)} nota(s) de R$ 100.00");
                                                                                                      valor = valor % 100;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 50)} nota(s) de R$ 50.00");
                                                                                                      valor = valor % 50;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 20)} nota(s) de R$ 20.00");
                                                                                                      valor = valor % 20;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 10)} nota(s) de R$ 10.00");
                                                                                                      valor = valor % 10;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 5)} nota(s) de R$ 5.00");
                                                                                                      valor = valor % 5;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 2)} nota(s) de R$ 2.00");
                                                                                                      valor = valor % 2;
                                                                                                      Console.WriteLine($"MOEDAS:");
                                                                                                      Console.WriteLine($"{Math.Truncate(valor) / 1} moeda(s) de R$ 1.00");
                                                                                                      valor = valor % 1;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 0.50)} moeda(s) de R$ 0.50");
                                                                                                      valor = valor % 0.50;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 0.25)} moeda(s) de R$ 0.25");
                                                                                                      valor = valor % 0.25;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 0.10)} moeda(s) de R$ 0.10");
                                                                                                      valor = valor % 0.10;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 0.05)} moeda(s) de R$ 0.05");
                                                                                                      valor = valor % 0.05;
                                                                                                      Console.WriteLine($"{Math.Truncate(valor / 0.01)} moeda(s) de R$ 0.01");
                                                                                                  }
                                                                                              }
                                                                                          }
                                                                                          

                                                                                          Pelo visto, vou ter que fazer do mesmo jeito que o professor Hugo falou.

                                                                                          1. G2
                                                                                            Em resposta agabi.mp:
                                                                                            Gabriela M @gabrielam
                                                                                              2022-12-01 00:55:00.000Z

                                                                                              Gente, sobre esse exercício, eu que sou da humanas e meus parcos conhecimentos de matemática se foram faz tempo rs...
                                                                                              Eu fiz de um jeito que o beecrowd aceitou, mas tô vendo as formas que as outras pessoas fizeram e tô achando que "burlei" o exercício? Tentei fazer de forma a "matematizar" o mínimo possível e não ficar trabalhando com decimais.

                                                                                              Ficou assim:

                                                                                              using System;
                                                                                              
                                                                                              namespace BanknotesCoins
                                                                                              {
                                                                                                  class Public
                                                                                                  {
                                                                                                      static void Main(string[] args)
                                                                                                      {
                                                                                                          string input = Console.ReadLine();
                                                                                                          string[] N = input.Split('.');
                                                                                              
                                                                                                          int N1 = int.Parse(N[0]);
                                                                                                          int N2 = int.Parse(N[1]);
                                                                                              
                                                                                                          int cem = N1 / 100;
                                                                                                          int resto1 = N1 % 100;
                                                                                                          int cinquenta = resto1 / 50;
                                                                                                          int resto2 = resto1 % 50;
                                                                                                          int vinte = resto2 / 20;
                                                                                                          int resto3 = resto2 % 20;
                                                                                                          int dez = resto3 / 10;
                                                                                                          int resto4 = resto3 % 10;
                                                                                                          int cinco = resto4 / 5;
                                                                                                          int resto5 = resto4 % 5;
                                                                                                          int dois = resto5 / 2;
                                                                                                          int resto6 = resto5 % 2;
                                                                                                          int mcem = resto6 % 2;
                                                                                              
                                                                                                          int mcinquenta = N2 / 50;
                                                                                                          int mresto2 = N2 % 50;
                                                                                                          int mvintecinco = mresto2 / 25;
                                                                                                          int mresto3 = mresto2 % 25;
                                                                                                          int mdez = mresto3 / 10;
                                                                                                          int mresto4 = mresto3 % 10;
                                                                                                          int mcinco = mresto4 / 5;
                                                                                                          int mresto5 = mresto4 % 5;
                                                                                                          int mum = mresto5 % 5;
                                                                                              
                                                                                                          Console.WriteLine("NOTAS:");
                                                                                                          Console.WriteLine($"{cem} nota(s) de R$ 100.00");
                                                                                                          Console.WriteLine($"{cinquenta} nota(s) de R$ 50.00");
                                                                                                          Console.WriteLine($"{vinte} nota(s) de R$ 20.00");
                                                                                                          Console.WriteLine($"{dez} nota(s) de R$ 10.00");
                                                                                                          Console.WriteLine($"{cinco} nota(s) de R$ 5.00");
                                                                                                          Console.WriteLine($"{dois} nota(s) de R$ 2.00");
                                                                                              
                                                                                                          Console.WriteLine("MOEDAS:");
                                                                                                          Console.WriteLine($"{mcem} moeda(s) de R$ 1.00");
                                                                                                          Console.WriteLine($"{mcinquenta} moeda(s) de R$ 0.50");
                                                                                                          Console.WriteLine($"{mvintecinco} moeda(s) de R$ 0.25");
                                                                                                          Console.WriteLine($"{mdez} moeda(s) de R$ 0.10");
                                                                                                          Console.WriteLine($"{mcinco} moeda(s) de R$ 0.05");
                                                                                                          Console.WriteLine($"{mum} moeda(s) de R$ 0.01");
                                                                                              
                                                                                                      }
                                                                                                  }
                                                                                              }
                                                                                              

                                                                                              Quais possíveis problemas/limitações eu teria "na vida real" em ter resolvido dessa forma?

                                                                                              1. J
                                                                                                Em resposta agabi.mp:
                                                                                                Jonathan Assunção @jhow88
                                                                                                  2023-10-29 21:34:58.832Z

                                                                                                  var input = require('fs').readFileSync('/dev/stdin', 'utf8');
                                                                                                  var lines = input.split('\n');

                                                                                                  let valor = parseFloat(lines.shift()).toFixed(2);

                                                                                                  console.log('NOTAS:');
                                                                                                  console.log(${Math.floor(valor/100).toFixed(0)} nota(s) de R$ 100.00);
                                                                                                  valor %= 100;
                                                                                                  console.log(${Math.floor(valor/50).toFixed(0)} nota(s) de R$ 50.00);
                                                                                                  valor %= 50;
                                                                                                  console.log(${Math.floor(valor/20).toFixed(0)} nota(s) de R$ 20.00);
                                                                                                  valor %= 20;
                                                                                                  console.log(${Math.floor(valor/10).toFixed(0)} nota(s) de R$ 10.00);
                                                                                                  valor %= 10;
                                                                                                  console.log(${Math.floor(valor/5).toFixed(0)} nota(s) de R$ 5.00);
                                                                                                  valor %= 5;
                                                                                                  console.log(${Math.floor(valor/2).toFixed(0)} nota(s) de R$ 2.00);
                                                                                                  valor %= 2;

                                                                                                  console.log('MOEDAS:');
                                                                                                  console.log(${Math.floor(valor/1).toFixed(0)} moeda(s) de R$ 1.00);
                                                                                                  valor %= 1.00;
                                                                                                  console.log(${Math.floor(valor/0.50).toFixed(0)} moeda(s) de R$ 0.50);
                                                                                                  valor %= 0.50;
                                                                                                  console.log(${Math.floor(valor/0.25).toFixed(0)} moeda(s) de R$ 0.25);
                                                                                                  valor %= 0.25;
                                                                                                  console.log(${Math.floor(valor/0.10).toFixed(0)} moeda(s) de R$ 0.10);
                                                                                                  valor %= 0.10;
                                                                                                  console.log(${Math.floor(valor/0.05).toFixed(0)} moeda(s) de R$ 0.05);
                                                                                                  valor %= 0.05;
                                                                                                  console.log(${Math.floor(Math.round(valor/0.01)).toFixed(0)} moeda(s) de R$ 0.01);
                                                                                                  valor %= 0.01;

                                                                                                  Foi aceito no beecrowd dessa forma também em javascript