solveQuadratic()

Решить квадратное уравнение a*x^2 + b*x + c = 0. Вернуть любой из корней; в случае если корней нет, вернуть NaN.

by Kate Pshidatok

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.css">
<div id="mocha">
</div>
<script>
  mocha.setup('bdd');
  var assert = chai.assert;
  var expect = chai.expect;
</script>
<script>

  describe("solveQuadratic", function() {
    before(function () {
      chai.config.includeStack = false;
    });
    it("два разных корня", function() {
      var x = solveQuadratic(1, -5, 6);
      assert.ok(x == 2 || x == 3);
    });
    it("один кратный корень", function() {
      assert.equal(-3, solveQuadratic(1, 6, 9));
    });
    it("нет корней", function() {
      assert.isNaN(solveQuadratic(1, 2, 4));
    });
  });

  mocha.run();
</script>

JavaScript

function solveQuadratic(a, b, c){
  var x1;
  var x2;
  var D = b*b-4*a*c;
  if (D>0){
    x1 = (-b + Math.sqrt(D))/2*a;
    x2 = (-b - Math.sqrt(D))/2*a;
    alert("2 корня"+ x1 + x2);
  }else if (D==0){
    x1=-b/(2*a);
    alert("1 корень"+ x1);
  }else{
   x1=NaN;
   alert("нет корней");
  }
  return x1;
  return x2;
}