我编写的代码是这样的,但不知道错在哪里,iis5运行不了
<body>
<script language="javascript" style="text/javascript">
s=0;
x=1;
For(m=1;m<=8;m++){ //下面是求n的阶乘
          For(i=1;i<=m;i++){
         x=i * x; };//求n的阶乘结束
s=x+s;//把n的阶乘进行累加,求n的阶乘之和
x =1;//初始化n的阶乘条件,因为n的阶乘循环是嵌套在求和循环里面,所以不能   
};
document.write("1!+2!+3!+...+100!="+s);
</script>
</body>
请高手帮忙看看,我是个菜鸟!~

解决方案 »

  1.   

    <script   language="javascript"   style="text/javascript">
    var s=0;
    var x=1;
    for(var m=1;m <=3;m++){   //下面是求n的阶乘
       for(var i=1;i <=m;i++){
         x=i*x;
       };//求n的阶乘结束
       s=x+s;//把n的阶乘进行累加,求n的阶乘之和
    };
    document.write("1!+2!+3!+...+100!="+s);
    </script>
      

  2.   

    对了上面的m<=8改成m<=100,
      

  3.   

    为什么求出的和显示为1!+2!+3!+...+100!=Infinity ,是不是指超出了数据范围?如何定义一下,然后可以显示?
      

  4.   

    不能,已经超过普通数字能表示的范围了。我这里有一个 BigDecial类,可以支持大数字,但是,我机器上还是异常慢,最终取消了。http://www.java2000.net/viewthread.jsp?tid=215<script type="text/javascript" src="mathcontext.js"></script>
    <script type="text/javascript" src="bigdecimal.js"></script>
    <script   language="javascript"   style="text/javascript">
    var s = new BigDecimal("1");
    var x = new BigDecimal("1");for(var m=1;m <=20;m++){
       for(var i=1;i <=m;i++){
         x=x.multiply(new BigDecimal(""+i));
       };
       s=s.add(x);
    };
    document.write("1!+2!+3!+...+100!="+s);
    </script>
      

  5.   

    <script language="javascript">
    function val()
    {
    var sum=0; for(var i =1;i<=100;i++)
    {
    var rel=1;
    for(var j=1;j<=i;j++)
    {
    rel*=j;
    }
    sum+=parseInt(rel);//如果溢出就这样,数据小的话就不用parseInt()类型转换
    } alert(":"+sum);
    }
    </script>