1057 N的阶乘(大数运算)

Posted GraceSkyer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1057 N的阶乘(大数运算)相关的知识,希望对你有一定的参考价值。

题目链接:51nod 1057 N的阶乘

 1 #include<cstdio>
 2 using namespace std;
 3 typedef long long ll;
 4 const int N = 10000;
 5 const int mod = 1e8;
 6 ll a[N] = {1};
 7 int n;
 8 int main(){
 9     int i, j, c, cnt;
10     scanf("%d", &n);
11     cnt = 1;
12     for(j = 2; j <= n; ++j){
13         for(c = i = 0; i <cnt; ++i){
14             a[i] = a[i] * j + c;
15             c = a[i] / mod;
16             a[i] %= mod;
17         }
18         if(c > 0){
19             a[i] = c;
20             cnt++;
21         }
22     }
23     printf("%lld", a[--cnt]);
24     while(cnt){
25         printf("%08lld", a[--cnt]);
26     }
27     return 0;
28 }
View Code

 

以上是关于1057 N的阶乘(大数运算)的主要内容,如果未能解决你的问题,请参考以下文章

51 Nod 1057 N的阶乘Java大数乱搞

N的阶乘(10000) 51 nod——1057 (大数)

51nod1057 N的阶乘

1057 N的阶乘

N的阶乘(大数运算)

51nod 1057 N的阶乘