首页 > 代码库 > 阶乘的精确值
阶乘的精确值
输入不超过1000的正整数n,输出n!=1*2*3*4*···*n的精确结果。
样例输入:30
样例输出:265252859812191058636308480000000
程序:
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 3000; // 数组长度
int f[maxn]; // 用于存放结果
int main()
{
int i, j, n;
cin >> n;
memset(f, 0, sizeof(f)); // 全部初始化为零
f[0] = 1; // 结果初始化为1
int l = 0; // l表示结果的长度
//循环计算从1到n的值
for(i = 1; i <= n; i++)
{
int c = 0;
for(j = 0; j <= l; j++)
{
int s= f[j] * i + c;
f[j] = s%10;
c= s/10;
if(s/10 > 0 && j == l)
l++;
}
}
// 通过循环输出结果,结果长度为l
for(i = l; i >= 0; i--)
cout << f[i];
cout <<endl;
return 0;
}
阶乘的精确值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。