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

ola, com relação a este exercicio do Beecrowd: Leia 3 valores de ponto flutuante e efetue o cálculo das raízes da equação de Bhaskara.

Por Fabricio Postarek Curi @fabcuri
    2023-10-20 19:06:40.706Z

    ola, com relação a este exercicio do Beecrowd:
    Leia 3 valores de ponto flutuante e efetue o cálculo das raízes da equação de Bhaskara. Se não for possível calcular as raízes, mostre a mensagem correspondente “Impossivel calcular”, caso haja uma divisão por 0 ou raiz de numero negativo.

    Entrada
    Leia três valores de ponto flutuante (double) A, B e C.

    Saída
    Se não houver possibilidade de calcular as raízes, apresente a mensagem "Impossivel calcular". Caso contrário, imprima o resultado das raízes com 5 dígitos após o ponto, com uma mensagem correspondente conforme exemplo abaixo. Imprima sempre o final de linha após cada mensagem.

    Desenvolvi esse codigo:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');

    var lines = input.split('\n');

    var a = lines[0];

    var b = lines[1];

    var c = lines[2];

    var A = parseFloat(a);

    var B = parseFloat(b);

    var C = parseFloat(c);

    var delta = (B * B) - (4 * A * C);

    if (delta < 0 || A === 0) {

    console.log("Impossivel calcular");

    }else {

    var x1 = (-B + Math.sqrt(delta)) / (2 * A);

    var x2 = (-B - Math.sqrt(delta)) / (2 * A);

    var raiz1 = x1.toFixed(5);

    var raiz2 = x2.toFixed(5);

    console.log(R1 = ${raiz1});

    console.log(R2 = ${raiz2});

    }

    porem recebo como resposta ....Nan
    não consigo visualizar o erro.....

    • 2 respostas
    1. W
      Walace Abreu @walaceAbreu
        2023-10-20 22:17:41.573Z

        A entrada é uma só, você tem que pegar a string que vem do input, faz um lines.split(" ") para poder separar os valores, tipo, a entrada seria:
        "10.0 20.1 5.1", você teria que separar esses valores

        let valores = lines[0].split(" ");
        let a = parseFloat(valores[0]);
        let b = parseFloat(valores[1]);
        let c = parseFloat(valores[2]);
        
        1. F
          Em resposta afabcuri:
          Fabricio Postarek Curi @fabcuri
            2023-10-21 11:25:31.626Z

            acredito que o erro estava no parametro do split....o beecrowd sugeria o \n, que usei em outros exercicios e funcionou....e substitui pelas aspas com espaço entre....ai passou!!!
            grato!!