Entonces, soy un poco nuevo en JavaScript y me quedé atascado en un ejercicio de Beecrowd (ejercicio número 1036).
aqui esta el ejercicio
Leer 3 números de punto flotante. Después, imprima las raíces de la fórmula de bhaskara. Si es imposible calcular las raíces porque una división por cero o una raíz cuadrada de un número negativo, presenta el mensaje "Impossivel calcular".
Aporte
Leer 3 números de punto flotante (doble) A, B y C.
Producción
Imprime el resultado con 5 dígitos después del punto decimal o el mensaje si es imposible calcularlo.
enlace al ejercicio: https://www.beecrowd.com.br/judge/es/problems/view/1036
Y aquí está mi código: alguien sabe qué tiene de malo
const input = `10.0 20.1 5.1` // R1 = -0.29788 // R2 = -1.71212 /* 0.0 20.0 5.0 // Impossivel calcular 10.3 203.0 5.0 // R1 = -0.02466 // R2 = -19.68408 10.0 3.0 5.0 // Impossivel calcular */ // var input = require('fs').readFileSync('/dev/stdin', 'utf8'); var lines = input.split('\n'); /** * Escreva a sua solução aqui * Code your solution here * Escriba su solución aquí */ let a = parseFloat(lines.shift()); let b = parseFloat(lines.shift()); let c = parseFloat(lines.shift()); let delta = b * b - 4 * a * c; if (delta < 0 || a === 0 || delta === 0) { console.log("Impossivel calcular"); } else { let r1 = (-b + Math.sqrt(delta)) / (2 * a); let r2 = (-b - Math.sqrt(delta)) / (2 * a); console.log('R1 = ' + r1.toFixed(5)); console.log('R2 = ' + r2.toFixed(5)); }Su código parece funcionar bien
Aquí hay una versión más simple.
// var input = require('fs').readFileSync('/dev/stdin', 'utf8'); const input = `10.0 20.1 5.1 0.0 20.0 5.0 10.3 203.0 5.0 10.0 3.0 5.0` input.split('\n').forEach(line => { let [a, b, c] = line.split(" ").map(str => +str); let delta = b * b - 4 * a * c; if (delta <= 0 || a === 0) { console.log("Impossivel calcular"); return; } let r1 = (-b + Math.sqrt(delta)) / (2 * a); let r2 = (-b - Math.sqrt(delta)) / (2 * a); console.log('R1 = ' + r1.toFixed(5)); console.log('R2 = ' + r2.toFixed(5)); }); <pre> 10.0 20.1 5.1 // R1 = -0.29788 // R2 = -1.71212 0.0 20.0 5.0 // Impossivel calcular 10.3 203.0 5.0 // R1 = -0.02466 // R2 = -19.68408 10.0 3.0 5.0 // Impossivel calcular </pre>