一道算法题,以前51js上讨论过。思路就是自己实现乘法运算,如果用递归,如果求1000的阶乘就要出现脚本失控了
51JS上最为经典的方法:
>
>
3: <head>
new document </title>
/>
/>
/>
/>
9: </head>
10:
11: <body>
'text/javascript'>
function factorial(n) {
var a = [1];
var i = 1;i<=n ;i++) {
var j = 0, c = 0;j<a.length || c != 0;j++ ) {
var m = (j < a.length) ? (i*a[j] + c) : c;
18: a[j] = m % 10;
19: c = (m - a[j]) / 10;
20: }
21: }
22:
);
24: }
25:
var num = 1000;
27:
28: alert(factorial(num));
29: </script>
30: </body>
31: </html>