JSFiddle - React, Tailwind, and code Playground

by Margus Martsepp

HTML

<script src="http://yourjavascript.com/61473108321/bignumber.js"></script>
<label for="nr">Number: </label><br/>
<input id="nr" value="100"></input><br/>
<label for="fact">Factorial: </label><br/>
<textarea id="fact"></textarea><br/>
<label for="time">Computed in: </label><br/>
<input id="time"></input><br/>

CSS

#fact{width:100%; height:400px;}

JavaScript

$(function(){
    var f = [new BigNumber("1"), new BigNumber("1")];
    var i = 2;
    function factorial(n)
    {
      if (typeof f[n] != 'undefined')
        return f[n];
      var result = f[i-1];
      for (; i <= n; i++)
          f[i] = result = result.multiply(i.toString());
      return result;
    }
    var cache = 100;
    factorial(cache);
    var update = function() {
       var item = $("#nr").val();
       var start = new Date().getTime();
       var result = factorial(item);
       var end = new Date().getTime();
       var total = end - start;
       $("#fact").val(result);
       $("#time").val(total + " ms");
    };
    $("#nr").on("input",function(){
        update();
    });
    update();
});