【题目描述】
求10000以内n的阶乘。
【输入】
只有一行输入,整数n(0≤n≤10000)。
【输出】
一行,即n!的值。
【输入样例】
4
【输出样例】
24
#include<iostream>
#include<cstring>
using namespace std;
int a[100000];
int main()
{
int n;
int i,j;
cin>>n;
a[0]=1,a[1]=1;
for(i=1;i<=n;i++)//高精乘
{
for(j=1;j<=a[0];j++)
a[j]*=i;
for(j=1;j<=a[0];j++)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}
if(a[j]>0)//进位处理
{
while(a[j]>10)
{
a[j+1]+=a[j]/10;
a[j]%=10;
j++;
}
a[0]=j;
}
}
for(i=a[0];i>=1;i--)
cout<<a[i];
return 0;
}
信息学奥赛一本通T1172:高精度计算 求10000以内n的阶乘 归属于 高精度计算,更多同类题解源程序见:高精度计算 和 求10000以内n的阶乘
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!