[讨论]在csdn上发的“雨中飞燕计算1000!”程序解释,请大家一起讨论一下
//看不懂下面代码部分,请各位帮我解释分析一下好吗
//计算1000!
#include <stdio.h >
#define N 1000 //要计算的N
long s[N]={1,1},n=N,t=2,a=1,b=0;
int main()//雨中飞燕之作
{
for(;a <= *s ¦ ¦ (++t <= n ? (b = 0 , a =1) : 0) ; (*s == a++ && b) ? (*s) ++ : 0)
s[a] = (b += s[a] *t) %10000 , b /= 10000 ;
for(printf("%d",s[*s]);--*s >0;)printf("%04d",s[*s]);
return 0;
}