大数运算-Tsinsen A1089.阶乘计算
2017-02-13 11:26
295 查看
输入一个正整数n,输出n!的值
n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法
n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法
#include <cstdio> #include <cstring> #include <iostream> #define maxSize 3000 using namespace std; int main() { int a[maxSize];//再小测试点会越界【1000!位数大致在2570左右】 memset(a, 0, sizeof(a)); int n, s, r = 0, index = 0;//index记录当前和的位数 cin >> n; a[0] = 1; for (int k = 2; k <= n; k++) { for (int i = 0; i <= index; i++) { s = a[i] * k + r;//相乘+进位 a[i] = s % 10;//每一位的运算结果 r = s / 10;//进位 } while (r != 0) {//最高进位 a[++index] = r % 10; r = r / 10; } } for (int i = index; i >= 0; i--)//倒序输出 printf("%d", a[i]); return 0; }
相关文章推荐
- ACM 大数运算 【计算1000以内的阶乘】
- WV.24-大数阶乘算法4-近似计算之二
- 实验5(2)编制程序,输入m、n(m≥n≥0)后,计算下列表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float
- 大数阶乘的位数和精确值计算【转】
- 计算大数阶乘--VB Script 版
- 大数阶乘的计算(三)
- 高精度运算——大数阶乘、排列、组合
- 大整数阶乘的运算(可以计算1000!)
- 大数运算(6)——大数阶乘(求位数)
- 大数运算(6)——大数阶乘(求位数)
- Java中计算大数的阶乘
- 1.精度计算——大数阶乘
- 大数阶乘的计算(三)
- WEB前端面试真题 - 2000!大数的阶乘如何计算?
- 大数阶乘的位数和精确值计算
- 阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右
- 实验5-2 编制程序,输入m、n(m≥n≥0)后,计算下列表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float。
- 大数运算(7)——大数阶乘(求阶乘)
- js计算大数阶乘
- C#阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右