HBU-PTT第二周 求n!的值
7-3 求n!的值
用高精度方法,求n!的精确值(n以一般整数输入)
输入格式
一个整数
输出格式
一个整数
输入样例
10
输出样例
3628800
代码如下:
#include<iostream>
using namespace std;
const int maxN = 1010;
int a[maxN];//创建一个数组
int main()
{
int num;
cin>>num;
a[0]=1;//0的阶乘是1
for(int i = 2;i<=num;i++)//从2开始算阶乘
{
int carry = 0;//进位数字
for(int j = 0;j<maxN;j++)//把算出来的结果存在a数组中,再把结果按位拆开存在每一个数组元素
{
a[j] = carry+a[j]*i;//算结果
carry = a[j]/10;//拆进位
a[j] = a[j]%10;//拆个位
}
}
int len = maxN;
while(a[len-1]==0&&len>1)
{
len--;
}
for(int i = len-1;i>=0;i--)
{
printf("%d",a[i]);
}
return 0;
}
运行结果:


浙公网安备 33010602011771号