hdoj 1042 N!(还是对大数的处理)
来源:互联网 发布:电力安全带实验数据 编辑:程序博客网 时间:2024/05/22 15:29
初略估计10000!的阶乘会有将近3000位数。
用二维数组每个单元保存一位数最后会内存溢出,所以我们每个单元保存4位数,减少数组的大小。
注意输出时的细节,每个单元保存4位数,如果数是0的话,要以%04输出。
#include<stdio.h> using namespace std;#define M 10001#define N 10001int a[N][M]={0};int len[N];void change(){int i,j,l,r,temp;l=1;a[0][0]=1;len[0]=1;for(i=1;i<N;i++){for(j=0;j<l;j++) {a[i][j]=a[i-1][j]*i;}r=0;for(j=0;j<l;j++){temp=a[i][j]+r;a[i][j]=temp%10000;r=temp/10000;}while(r){a[i][l++]=r%10000;r=r/10000;}len[i]=l;}}int main(){int n,i;change();while(~scanf("%d",&n)){if(len[n]==1) printf("%d\n",a[n][0]);else{printf("%d",a[n][len[n]-1]);for(i=len[n]-2;i>=0;i--)printf("%04d",a[n][i]);printf("\n");}}return 0;}
阅读全文
0 0
- hdoj 1042 N!(还是对大数的处理)
- HDOJ 1042 N! 大数
- HDOJ 1042 N!(大数)
- HDOJ 1042 N! (大数)
- HDOJ 1042 N! -- 大数运算
- [HDOJ 1042] N! [java大数]
- 【大数问题】 HDOJ 1042 N!
- hdoj 1042 N! 【大数阶乘】
- HDOJ 1042 N! (大数阶乘)
- HDOJ 题目1042 N!(大数)
- hdoj.1042 N!【大数问题】 20140731
- HDOJ 1042 N!(大数阶乘)
- NYOJ 28 大数阶乘 HDOJ 1042 N!
- HDOJ 1042 N!(大数阶乘JAVA)
- HDOJ-1042 N!(大数乘法问题)
- ACM--大数阶乘--HDOJ 1042--N!--Java
- HDOJ-1042 大数处理时的更优方法
- 对大数精度的处理(3)_大数乘大数
- 特色团
- Vue 2.0 起步(2) 组件及 vue-router实例
- win7系统文件删除了怎么办 win7系统文件丢失修复图文教程
- Plant(矩阵快速幂(推理))
- EasyUI中datagrid多层添加时显示乱行问题
- hdoj 1042 N!(还是对大数的处理)
- vue实现app页面切换效果
- [BZOJ 2186][Sdoi2008]沙拉公主的困惑:欧拉函数
- Vue路由开启keep-alive时的注意点
- 深度工作:在一个纷扰的世界里通过专注获得成功的规则
- 关于vs运行结果的显示
- 如何从一个多重循环中直接跳出
- Windows CMD模式下关闭应用程序
- vue-router总结