您的位置:首页 > 其它

4-10 阶乘计算升级版*

2017-03-11 20:20 302 查看
#include"stdio.h"

void Print_Factorial ( const int N )

{
int mup=1;
if(N<0){printf("Invalid input");return;}
if(N==0){printf("%d",mup);return;}
if(N<=12)
{
for(int i=1;i<=N;i++)
mup=mup*i;
printf("%d",mup);

}
else
{
if(N<=1000&&N>12)
{
int site[10000]={0};
int n=0;
int k=1;
int temp=0;
site[0]=1;
for(int i=2;i<=N;i++)
{
for(int j=0;j<k;j++)
{
temp=site[j]*i+n;
site[j]=temp%10;
n=temp/10;

}
while(n!=0)
{
site[k]=n%10;
k++;
n=n/10;

}
}
for(int l=k-1;l>=0;l--)
printf("%d",site[l]);
return;

}
}

return;

}

int main()

{

    int N;

    scanf("%d", &N);

    Print_Factorial(N);

    return 0;
}

源于10进制乘法的原理,可举例验证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C