51nod 1057 N的阶乘
来源:互联网 发布:sql 获取exec 返回值 编辑:程序博客网 时间:2024/05/21 07:53
题目:求n的阶乘(1<=n<=10000)链接
思路:手算模拟,总共分成m段,每个段8位数字,存在m个变量中,这样可以防止溢出,c可以理解为进位。输出的时候最低位可能是0,所以不能直接输出一个0,而要补齐8位。
#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,ox3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;const int INF = ( 2e9 ) + 2;const int maxn = 100000000;int main(){ int n; // 求n的阶乘 n= 10000; scanf("%d",&n); ll a[100000]; ll c=0; int m=0; a[0]=1; for(int i=1;i<=n;i++) { c=0; for(int j=0;j<=m;j++) { a[j]=a[j]*i+c; c=a[j]/maxn; a[j]%=maxn; } if(c>0) { m++; a[m]=c; } } printf("%lld",a[m]); for(int i=m-1;i>=0;i--) printf("%0.8lld",a[i]); // 如果最低位为0,那么用0补满8位 printf("\n");}
阅读全文
0 0
- 51nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51Nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51Nod-1057-N的阶乘
- 51 nod 1057 n的阶乘
- 51Nod 1057 N的阶乘
- 51nod 1057 N的阶乘
- 51nod N的阶乘
- 51nod N的阶乘
- 51Nod 1057 N的阶乘(数论)
- 51Nod-1057-N的阶乘
- 51nod 1057 N的阶乘(大数-划分)
- 51nod 1057 N的阶乘(大数问题)
- 51nod 1057 N的阶乘 (水题ing……)
- 自定义可折叠按钮
- Oil Deposits
- CF 833B The Bakery(dp+线段树)
- 【Python】【Caffe】一、生成prototxt文件《python调用caffe模块》
- 弱/水!!题
- 51nod 1057 N的阶乘
- navicat报错
- 字符串的拷贝
- 闭包问题的理解及总结
- 关于路径
- Java进阶(三十三)java基础-filter
- My Debug
- 素数距离问题
- 摆方格