No internet connection
  1. Home
  2. Dúvidas Gerais

1098 - Wrong answer (5%)

Por Pedro Cruz Arquitetura @PedroCruz
    2022-12-10 03:50:55.850Z

    Pessoal, estou com uma dificuldade de identificar onde errei!

    o beecrowd acusa:

    meu código está assim:

            double i = 0;
            double j = 1;
            
            for (int cont = 0; i <= 2; i += 0.2, j +=1.2)
            {
                if(cont == 0)
                {
                    Console.WriteLine($"I={i} J={j:f0}");
                    j++;
                    Console.WriteLine($"I={i} J={j:f0}");
                    j++;
                    Console.WriteLine($"I={i} J={j:f0}");
                    j -= 3;
                }
                else
                {
                    Console.WriteLine($"I={i:f1} J={j:f1}");
                    j++;
                    Console.WriteLine($"I={i:f1} J={j:f1}");
                    j++;
                    Console.WriteLine($"I={i:f1} J={j:f1}");
                    j -= 3;
                }
                cont++;
    

    e na saída do console está exatamente como o beecrowd pede:

    • 9 respostas
    1. André Filipe @andresantos
        2022-12-10 12:25:26.148Z

        Note que você poderia usar apenas uma variável:

        for(double i = 0; i <= 2; i += 0.2) {
            Console.WriteLine($"I={i} J={i + 1}");
            Console.WriteLine($"I={i} J={i + 2}");
            Console.WriteLine($"I={i} J={i + 3}");
        }
        
        1. Denilson Bezerra @denilsonbezerra
            2022-12-10 12:50:50.370Z2022-12-10 15:56:16.647Z

            Genial!!! Meu cérebro trabalhando a mil eu não conseguia perceber uma solução simples dessa.
            Minha solução foi com operação matemática arredondando com Math.Round:

            for (double i = 0, j = 1; i <= 2; j++) {
            
                Console.WriteLine($"I={i} J={j}");
            
                if (j == i + 3) {
                    i = Math.Round(i + 0.2, 1);
                    j = Math.Round(j - 2.8, 1);
                }
            }
            
            1. Em resposta aandresantos:
              PPedro Cruz Arquitetura @PedroCruz
                2022-12-10 19:54:21.112Z

                Gênio! gostei muito dessa solução, valeu André!

              • Em resposta aPedroCruz:
                Jéssica Cirne @jessicacirne
                  2022-12-11 02:15:14.711Z

                  Questão chata essa, tô presa nela a um tempão! Mas a sua solução me fez ver uma nova perspectiva mais simples do que a forma que eu estava tentando fazer. Massa!

                  1. Em resposta aPedroCruz:
                    Lucas Ferreira @lksferreira
                      2022-12-10 05:03:46.886Z2022-12-10 14:20:54.579Z

                      Hello @PedroCruz ,

                      Infelizmente o beecrowd é muito enjoado com a formatação de saída, tem que estar igualzinho, nos mínimos detalhes, o problema do seu código esta no arredondamento, perceba que no exemplo do exercício, toda vez que a saída é um inteiro, ele não apresenta casa decimal.

                      Por tanto o seu output também não pode apresentar casas decimais quando o número for "redondo".

                      Se você tiver dúvida quanto ao resultado final, confira aqui: https://www.udebug.com/URI/1098

                      Não vou te dar a resposta de como fazer, mas vou te dar alguma dica: Tente outro método de arredondamento.

                      Caso ainda sim não consiga, me avisa... Fui fflwwwww

                      1. PPedro Cruz Arquitetura @PedroCruz
                          2022-12-10 20:00:45.190Z

                          Fala @lksferreira!

                          muito obrigado pela atenção que você me deu! vou dar uma olhada mais afundo nesse udebug! achei muito interessante!

                          Cara o meu grande problema é que eu tentei ir pelo caminho de deixar os numeros inteiros arredondados também! porém mesmo assim o beecrowd não simpatizou muito!
                          saca só meu novo código:

                                  double i = 0;
                                  double j = 1;
                                  for (int cont = 0; i <= 2; i += 0.2, j +=1.2)
                                  {
                                      if(i == 0 || i == 1 || i == 2)
                                      {
                                          Console.WriteLine($"I={i} J={j:f0}");
                                          j++;
                                          Console.WriteLine($"I={i} J={j:f0}");
                                          j++;
                                          Console.WriteLine($"I={i} J={j:f0}");
                                          j -= 3;
                                      }
                                      else
                                      {
                                          Console.WriteLine($"I={i:f1} J={j:f1}");
                                          j++;
                                          Console.WriteLine($"I={i:f1} J={j:f1}");
                                          j++;
                                          Console.WriteLine($"I={i:f1} J={j:f1}");
                                          j -= 3;
                                      }
                          

                          A resposta do console:

                          e o erro do beecrowd :

                          acredito que o metodo certo seja por outro caminho diferente desse que pensei, e o beecrowd deve estar implicando com isso.

                        • Em resposta aPedroCruz:
                          Ricardo Vieira @Ricardo
                            2022-12-10 11:17:29.873Z

                            É questão de arredondamento mesmo. Recomendo dar uma olhada no método :

                            ToString("0.##")
                            
                            1. PPedro Cruz Arquitetura @PedroCruz
                                2022-12-10 20:01:44.720Z

                                valeu @Ricardo muito obrigado pela dica!
                                vou dar uma atenção nisso!

                                1. Em resposta aRicardo:
                                  VVANESSA PEREIRA @van_pereira
                                    2022-12-13 09:54:44.978Z

                                    Obrigada pela dica, também estava errando no arredondamento, agora deu certo!