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

Notas e Moedas - Dica

Por Marcele Eller Gusmão Moura @marceleeller
    2023-10-24 11:51:20.730Z

    Pessoal, tive certa dificuldade nesse exercício e vim recorrer às mensagens antigas aqui do fórum pra saber como resolver e resolvi compartilhar com vocês.
    Apesar da minha resolução estar certa (testei no VSCode, porque não conseguia encontrar o erro no Beecrowd), o Beecrowd ficava acusando um erro na última moeda de 0.01.
    Pesquisando por aqui, vi que muitas vezes há uma perda nesse valor de resto, então seria necessário ou adicionar um valor de +0.00001 ou adicionar um .toFixed(2) ao resto.

    No meu código ficou assim:

    valor = (valor % moeda).toFixed(2)
    

    Espero que ajude outras pessoas com essa mesma dificuldade que eu tive.

    • 5 respostas
    1. Conversando com o @MarcusVogado, a gente também passou mal nesse exercício, ficamos um bom tempo quebrando a cabeça pra resolver. Nossas formas de resolver o problema como um todo, foram diferentes, mas aplicamos a mesma formula no calculo.

      Para fazer os cálculos de quantidade de notas e modas, de modo geral, ambos usamos a função Math.floor. Quando eu identifiquei o problema do 0.01, avisei ele, e fizemos uma força-tarefa pra conseguir solucionar. A solução encontrada por ele pra resolver o 0.01 eu também apliquei no meu código, segue abaixo:

      Math.floor(Math.round(valor / moedas[i])
      

      Gambiarra, mas funcionou. Haha.

      1. MARCUS VOGADO @MarcusVogado
          2023-10-24 13:05:46.558Z

          Rapaz pensa num sufoco, kkk
          mas no final deu certo.

          1. Em resposta amatheuszarpellon:
            Jackson @Jackson
              2023-10-24 18:54:28.898Z

              Eu usei o math.trunc() passou de primeira

              1. Eu tentei usar o trunc, mas devo ter feito alguma coisa errada, ai segui a call do Marcus e deu certo.

            • G
              Em resposta amarceleeller:
              Guilherme Duarte @GuiDuarte07
                2023-10-24 19:08:26.953Z

                No meu caso eu fiz só uma gambiarrazinha
                if (valor > 0.0099 && valor < 0.01) valor = 0.01