solveQuadratic()

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

by l_gordienkova

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 d=b*b-4*a*c;
  x1=(-b+Math.sqrt(d))/(2*a);
  x2=(-b-Math.sqrt(d))/(2*a);
	if (d<0) return NaN;
  else return x1;
}