JSFiddle - React, Tailwind, and code Playground
JavaScript
function rFact(num)
{
if (num === 0)
{ return 1; }
else
{ return num * rFact( num - 1 ); }
}
function sFact(num)
{
var rval=1;
for (var i = 2; i <= num; i++)
rval = rval * i;
return rval;
}
var start, end, rTime, sTime;
start = new Date().getTime();
for (var i = 0; i < 10000; i++)
rFact(100);
end = new Date().getTime();
rTime = end - start;
start = new Date().getTime();
for (var i = 0; i < 10000; i++)
sFact(100);
end = new Date().getTime();
sTime = end - start;
alert('recursive : ' + rTime + '\nloop : ' + sTime);