Nisy 发表于 2009-7-28 21:31:42

哪位分享下大数阶乘的代码哈 ~~

RT~~

evilknight 发表于 2009-7-28 21:34:17

我的那个算法太垃圾了,算10W的阶乘要21分钟呀!
过些天弄出那个算法出来先!

xusir98 发表于 2009-7-28 22:40:17

只能跑1W的漂过

evilknight 发表于 2009-7-29 23:59:11

杭电1042 N! 的代码
#include <stdio.h>
#include <string.h>
#define MAX 100000

int main(void)
{
    int a;
    int n,i,len,j;
    while (scanf("%d", &n) > 0)
    {
      memset(a,0,MAX);
      a = len = 1;
      for (i = 2; i <= n; ++i)
      {
            for (j = 0; j < len; ++j)
            {
                a *= i;
            }
            for (j = 0; j < len; ++j)
            {
                a += a/MAX;
                a = a%MAX;
            }
            if (a)
                ++len;
      }
      printf("%d", a);
      for (i = len-2; i >= 0; --i)
            printf("%05d", a);
      printf("\n");
    }
    return 0;
}

boy 发表于 2009-7-30 00:28:08

我是来膜拜楼上的
页: [1]
查看完整版本: 哪位分享下大数阶乘的代码哈 ~~