【算法入门经典】 题目 5.2.2 阶乘的精确值
来源:互联网 发布:ubuntu设置断电自启动 编辑:程序博客网 时间:2024/06/08 05:33
5.2.2 阶乘的精确值
输入一个不超过1000的数n,计算n!
很显然,1000的阶乘会超过int的表示范围,所以我们要借助数组来存储。
这里的具体做法是,先生成一个数组,a[0]处放个位数。初始为a[] = {1 0 0 0 0 0 ......} 表示1
然后从2->n,每次将一个数乘到数组中去。
而每次乘一个数,具体做法是设置一个进位值c,初始为0,然后,每次将一个数乘以数组中的每一位,乘完一位得到的数字tmp, tmp%10作为这一位的新值, tmp/10作为进位值c, 之后循环对下一位处理.
#include<iostream>#include<vector>#include<string>using namespace std;int main(){int n;cin>>n;int a[3000] ={0};a[0] = 1;for(int i=2;i<=n;i++){int c=0;for(int j=0;j<3000;j++){int tmp = a[j]*i + c;a[j] = tmp%10;c = tmp/10;}}int k;for(k=3000-1;k>=0;k--){if(a[k]!=0)break;}for(int m=k;m>=0;m--)cout<<a[m];cout<<endl;}
0 0
- 【算法入门经典】 题目 5.2.2 阶乘的精确值
- 【算法竞赛入门经典】阶乘的精确值
- 算法竞赛入门经典-阶乘的精确值
- 算法竞赛经典入门-第五章阶乘的精确值
- 算法-阶乘的精确值
- 算法竞赛入门——阶乘的精确值
- 5.2.2阶乘的精确值
- 算法篇-高精度-阶乘的精确值
- 算法竞赛入门经典 5.2.2高精度阶乘
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值!
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 【算法入门经典】 题目:5.1.3 周期串
- SQLite入门与分析(六)---再谈SQLite的锁
- git 学习笔记
- Util工具类 URLConnectionUtil - 20141211 封装为访问网络框架
- Visual Leak Detector(vld)无法显示内存泄露文件名与行号
- 【算法入门经典】 题目 5.2.2 阶乘的精确值
- Xcode编绎及App上传出错问题解决
- YUV420P
- 屏幕震动的效果实现
- 配置ORACLE 11g绿色版客户端和PLSQL环境
- 用c++实现打印三角形
- visual studio调试技巧
- 大整数加减乘除
- sharepoint 2013 在office365中建立一个快速的list webpart和document library