HDU 1042 N! 参考代码
来源:互联网 发布:乔丹98年总决赛数据 编辑:程序博客网 时间:2024/06/05 17:23
HDU 1042 N! 题意:给定整数N(0 ≤ N ≤ 10000), 求 N! (题目链接)
#include <iostream>using namespace std;//每个数组元素存放5位数const int MAX=100000; //%MAX后结果为[0,99999]const int N=10001; //7132+1int a[N]={0};void prtBig(int n){ for(int i=0; i<n;i++) { if(i==0) //最高位忽略前导0 printf("%d",a[i]); else //非最高位按5位输出 printf("%05d",a[i]); } printf("\n"); }//下面的n为引用参数,即n为实参m的别名//如此对形参的改变即是对实参的改变void mul(int &n, int k) { int c=0; //从最低位开始乘 for (int i=n-1; i>=0; i--) {int t=a[i]*k+c;a[i]=t%MAX;c=t/MAX; } if (c>0)//最后的进位放在最前面{for(int j=n;j>0;j--) a[j]=a[j-1];//移位a[0]=c; //进位放在最高位n++; //n变化则实参也变}}bool run(){int n; if(scanf("%d",&n)==EOF) return false; fill(a,a+N,0); //所有数组元素清0a[0]=a[1]=1; //0,1的阶乘为1int m=1; //数组实际长度为1 for(int i=2;i<=n;i++) //从2开始乘 { mul(m, i); } prtBig(m); return true;}int main(){ while(run()); return 0;}
0 0
- HDU 1042 N! 参考代码
- hdu 1042 n!各种代码
- HDU 2136 Largest prime factor 参考代码
- N! ---HDU 1042
- HDU 1042 N!
- hdu 1042 N!
- HDU 1042 N!
- HDU 1042 N!
- hdu 1042 N!
- hdu 1042 N!
- HDU 1042 - N!
- hdu 1042 N!
- hdu 1042 N!
- HDU 1042 N!
- hdu 1042 N!
- HDU 1042 N!
- HDU 1042 N!
- Hdu 1042 - N!
- 求解最大公约数——欧几里得算法及其(解同余方程)拓展欧几里得
- Axure7.0在OS X Yosemite(10.10)中不能用的问题
- 整理所有IOS开发关闭键盘方法
- VS2010中出现无法嵌入互操作类型
- Oracle 12c 卸载
- HDU 1042 N! 参考代码
- 胜利大逃亡
- 2014年9月22日 十年一剑预算法
- Maven最佳实践:管理依赖
- 我的程序猿之路--迷茫的开始
- Android Activity之间跳转 生命周期变化详解
- 【Android】进度条对话框ProgressDialog
- POI导出EXCEL经典实现
- 大小端、网络字节序、本地字节序问题