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

来源:互联网 发布:智能编程机械人 编辑:程序博客网 时间:2024/06/09 12:45
#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 ){int i;int num=1;if(N<=1000){if(N==0){printf("%d\n",1);}else if(N<0){printf("Invalid input\n");}else if(N>0&&N<10){for(i=N;i>0;i--){num*=i;}printf("%d",num);}else{int Pro[3000]={0};Pro[0]=1;//从1开始乘int temp;//记录b和c的乘积int a=0;//a记录Pro[3000]的最高非零位int b;//b记录Pro[3000]正在运算的位int c;//c记录从1-N的乘数int d=0;//d记录pro[b]*c的个位以上的数值for(c=2;c<=N;c++){for(b=0;b<=a;b++){temp=Pro[b]*c+d;Pro[b]=temp%10;d=temp/10;}//计算每个乘数c和数列Pro[]相乘的结果while(d!=0){a++;Pro[a]=d%10;d/=10;}//当Pro[a]最高非零位增加时的操作}int e;//结果输出位for(e=a;e>=0;e--){printf("%d",Pro[e]);}}}}


0 0
原创粉丝点击