/* 计算 N! */ #include<stdio.h> #define N 1000 /*要计算的N */ long s[N] = {1, 1}; int main(int argc, char * argv[]) { long t = 1, a = 1, b = 0; /* 计算 */ while((a<=s[0])||((++t<=N)?(b=0,a=1):0)) { b += s[a] * t; s[a] = b % 10000; b /= 10000; if((s[0] == a) && b) s[0]++; a++; } /* 输出: s[s[0] ~ 1] */ while((--s[0])>0) return 0; }