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>