您的位置:首页 > 其它

阶乘计算升级版

2018-02-08 12:19 204 查看

6-10 阶乘计算升级版(20 分)

本题要求实现一个打印非负整数阶乘的函数。

函数接口定义:

void Print_Factorial ( const int N );

其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。

裁判测试程序样例:

include

#include <stdio.h>

void Print_Factorial ( const int N );

int main()
{
int N;

scanf("%d", &N);
Print_Factorial(N);
return 0;
}
void Print_Factorial ( const int N )
{
long i,s=1;
if(N>=0&&N<=12)
{
for(i=2;i<=N;i++)
{
s*=i;
}
printf("%d",s);
}
else if(N>12&&N<=1000)
{

int num[3000]={0};
int k=1;
int n=0;
int temp;
num[0]=1;
for(int i=2;i<=N;i++)
{
for(int j=0;j<k;j++)
{
temp=num[j]*i+n;
num[j]=temp%10<
4000
/span>;
n=temp/10;
}
while(n!=0)
{
num[k]=n%10;
n=n/10;
k++;
}

}
for(int x=k-1;x>=0;x--)
{
printf("%d",num[x]);
}
}
else
{
printf("%s\n","Invalid input");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: