您的位置:首页 > 其它

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

2015-10-14 23:08 330 查看
本题要求实现一个打印非负整数阶乘的函数。

函数接口定义:

void Print_Factorial ( const int N );
其中
N
是用户传入的参数,其值不超过1000。如果
N
是非负整数,则该函数必须在一行中打印出
N
!的值,否则打印“Invalidinput”。

裁判测试程序样例:

#include <stdio.h>void Print_Factorial ( const int N );int main(){int N;scanf("%d", &N);Print_Factorial(N);return 0;}/* 你的代码将被嵌在这里 */

输入样例:

15

输出样例:

1307674368000
#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 ){if(N>0&&N<=12){int i;long int M=1;for(i=2;i<=N;i++){M=M*i;}printf("%ld\n",M);}else if(N>12&&N<=1000){int Num[3001]={0};int i,j,k,n;k=1;n=0;Num[0]=1;int temp;for(i=2;i<=N;i++){for(j=0;j<k;j++){temp=Num[j]*i+n;Num[j]=temp%10;n=temp/10;}while(n!=0){Num[k]=n%10;k++;n=n/10;}}for(i=k-1;i>=0;i--){printf("%d",Num[i]);}}else if(N==0)printf("1\n");elseprintf("Invalid input\n");}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: