- 论坛徽章:
- 0
|
python 不认就用 c 写一个好了
- #include <stdio.h>
- unsigned long b=1000000000UL;
- unsigned long r[286];
- void
- factorial (long n, unsigned long *r)
- {
- long i, j, d;
- unsigned long c;
- unsigned long long x;
-
- r[0]=1, d=0;
- for (i=2; i<=n; i++)
- {
- c=0;
- for (j=0; j<=d; j++)
- {
- x=(unsigned long long)r[j] * i+c;
- r[j]=x%b;
- c=x/b;
- }
- if (c!=0)
- {
- d++;
- r[d]=c;
- }
- }
- }
- int
- main()
- {
- int i;
- factorial(1000, r);
- printf ("%ld", r[285]);
- for (i=284; i>=0; i--)
- printf ("%09ld", r[i]);
- }
复制代码
402387260077093773543702433923003985......410970027753472000000000000000000000......0
real 0m0.019s
user 0m0.012s
sys 0m0.000s |
|