<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>
请高手帮忙看看,我是个菜鸟!~
- JScript code
- <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>
数字也会溢出的。
没戏的!
为什么求出的和显示为1!+2!+3!+...+100!=Infinity ,是不是指超出了数据范围?如何定义一下,然后可以显示?不能,已经超过普通数字能表示的范围了。
我这里有一个 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> <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>

