用C语言实现:
#include"stdio.h"
void main()
{
long a[256], b, d;
int m = 1, n, i, j, r;
scanf("%d", &n);
a[1] = 1;
d = 0;
for (i = 2; i <= n; i = i + 1){
for (j = 1; j <= m; j = j + 1){
b = a[j] * i +d; //存储中间结果
a[j] = b % 1000000;
d = b / 1000000;
}
if (d != 0){ //进位处理
a[j] = d % 1000000;
d = d / 1000000;
m = m + 1;
}
}
printf("%d ", a[m]);
for (i = m-1; i >= 1; i--){
if(a[i] > 99999){
printf("%d ", a[i]);
continue;
}
if(a[i] > 9999