data里面确实有正确值
其它都是空
阶乘多容易 干嘛用这个

解决方案 »

  1.   

    JK 2002-02-22的代码。
    http://topic.csdn.net/t/20011022/19/334766.htmlJK用的是递归,multiN用的是循环。(循环的效率应该会好点)
    进制是一样的(都是用10000000000进制)(能达到精度的前提下,进制越大,速度越快)
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>计算的阶乘</title>
    </head><body> 计算<input name="themaxinput" maxlength=4>的阶乘,<input value=开始 type=submit onclick="javascript:nowstart(themaxinput.value*1+1)"><br><font color=red size=-1>注:将鼠标移到这里,按右键,点击查看源文件,可以看到详细程式</font>
    </body></html>
    <script language=javascript>
    var a=new Array(1,0); //结果
    var i; //循环1-1000
    function nowstart(themax)
    {document.write ("<br>计算"+(themax-1)+"的阶乘");
    document.write ("<br>开始时间:"+Date()+"<br>结果:<br>");
    for (i=1;i<themax;i++)  achengi(a,i);
    document.write ("<br>结束时间:"+Date());
    document.write ("<br>总长度为:"+a.reverse().join(",")); }
    function achengi(aa,ii) //实现递推相乘的步伐
    {
    var c=0;
    var d=0;
    for (var l=0;(l<a.length)||(c>0);l++) 
    {
    if (l>=a.length) a[l]=0;
    d=c+a[l]*i;
    a[l]=d%10000000000;
    c=(d-a[l])/10000000000;
    }
    }</script>
      

  2.   

    sorry,
    JK用的也是循环,而不是递归,