南阳oj 大数阶乘 题目28
来源:互联网 发布:iphone移动数据怎么关 编辑:程序博客网 时间:2024/04/30 06:28
啊啊啊啊啊啊啊啊啊学的太少了
<h2>大数阶乘</h2><div class="problem-ins"> 时间限制:<span class="editable highlight" id="problem[time_limit]">3000</span> ms | 内存限制:<span class="editable highlight" id="problem[memory_limit]">65535</span> KB </div><div class="problem-ins">难度:<span class="editable highlight">3</span></div><div class="clr"></div><dl class="problem-display"><dt>描述 </dt><dd>我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?</dd><div class="clr"></div><dl class="others"><dt>输入</dt><dd>输入一个整数m(0<m<=5000)</dd><dt>输出</dt><dd>输出m的阶乘,并在输出结束之后输入一个换行符</dd><dt>样例输入</dt><dd><pre id="sample_input">50
30414093201713378043612608166064768844377641568960512000000000000
#include<iostream>#include<iomanip>using namespace std;//存储20000以内的阶乘int a[15470]; //用数组来存储结果,每个元素存一个五位数int main(){ int n; cin>>n; a[1]=1; a[0]=1; //这个a[0]是个计数器,记录五位数的个数 int up; //向前一个五位数的进位 for(int i=2;i<=n;++i) //从2到n的乘数 { up=0; //乘完每个乘数进位归零 for(int j=1;j<=a[0];++j) //已有数值位参与运算 { a[j] *=i; //每一个五位数乘以乘数 a[j] +=up; //加上进位 up=a[j]/100000; //计算下一个进位 a[j] %=100000; //当前五位数的值 } if(up!=0) { a[0]++; //若有进位,计数器加一 a[a[0]]=up; //存放进位 } } if(a[0]==1) cout<<a[1]; else { cout<<a[a[0]]; for (int i=a[0]-1;i>0;i--) { cout<<setfill('0')<<setw(5)<<a[i]; //补足五位数 } }}
0 0
- 南阳oj 大数阶乘 题目28
- 南阳OJ 28:大数阶乘
- 南阳oj 28 大数阶乘
- 南阳理工题目28大数阶乘
- 大数阶乘--------------------------南阳理工学院题目28
- 南阳28 大数阶乘
- 南阳oj 题目65 另一种阶乘问题
- 南阳oj 题目91 阶乘之和
- 南阳OJ 题目65:另一种阶乘问题
- 阶乘的0 【南阳 oj 题目84】
- 题目28:大数阶乘
- nyist ( 南阳理工学院 ) 28 大数阶乘
- 南阳理工ACM 28大数阶乘
- 南阳理工:大数阶乘
- 南阳ACM28-大数阶乘
- 南阳理工大数阶乘
- 南阳oj 题目56 阶乘因式分解(一)
- 南阳OJ 题目56-阶乘因式分解(一)
- Android4.4竖屏切换至横屏的生命周期变换
- java小程序:输出一到一百素数 , 每五个换行
- ubuntu git push 重复输入用户名和密码
- 【Google内推】2016校园招聘
- 为什么看AV
- 南阳oj 大数阶乘 题目28
- 239Sliding Window Maximum
- 兔子藏洞问题
- SVN安装---本机安装---SVN仓库(2)
- AlertDialog的几种使用形式
- hdu 5116 dp
- UVA 11324 The Largest Clique(tarjan有向图强连通+缩点)
- Linux远程管理工具
- C语言的冒泡代码