作者 Heihaier [c] 2008-11-10 18:50 (点击下载)

  1. /* 计算 N! */
  2.  
  3. #include<stdio.h>
  4.  
  5. #define N 1000 /*要计算的N */
  6.  
  7. long s[N] = {1, 1};
  8.  
  9. int main(int argc, char * argv[])
  10. {
  11. long t = 1, a = 1, b = 0;
  12.  
  13. /* 计算 */
  14. while((a<=s[0])||((++t<=N)?(b=0,a=1):0))
  15. {
  16. b += s[a] * t;
  17. s[a] = b % 10000;
  18. b /= 10000;
  19.  
  20. if((s[0] == a) && b)
  21. s[0]++;
  22. a++;
  23. }
  24. /* 输出: s[s[0] ~ 1] */
  25. printf("%d", s[s[0]]);
  26. while((--s[0])>0)
  27. printf("%04d", s[s[0]]);
  28.  
  29. return 0;
  30. }

提交下面的校正或者修改. (点击这里开始一个新的帖子)
姓名: 在 cookie 中记住我的名字

屏幕抓图:(jpeg 或 png)