100的阶乘算法

发布:追蝶   时间:2007-10-13   阅读:2179  

来源:追蝶

这是我师兄给我出的算法练习,原来是C++的题目,但我对C++不熟悉,他允许我用其他语言来写,所以我就用JavaScript算出来了,现贴出来,供大家学习。复制代码后保存为cj.html,双击cj.html即可用浏览器运行。

注意:运行前请将中文的分号;改成英文的分号;  否则程序不能执行。

</html>
<title>100的阶乘算法,还是叫100的乘阶算法</title>
<body>

<script>
var a=new Array(0,0,1), c=0;

for(i=1; i<101; i++)
  {
  for(j=a.length-1; j>=0; j--)  //数组内相乘;
    {
    a[j]=a[j]*i;
    }
    for(j=a.length-1; j>=0; j--)
      {
      if (a[j]>100000)
        {
        c=Math.floor(a[j]/100000); // c等于进位数
        a[j]=a[j]%100000; // a等于5位数

        if (j-1<0) {a.unshift(c);}
        a[j-1]=a[j-1]+c; // 左边1个a的进位计算
        }
      }
    document.write("i="+i+", a="+a+", c="+c+"<br>");
    }
</script>

</body>
</html>