您的位置:首页 > 其它

6-10 阶乘计算升级版

2017-12-30 11:34 295 查看

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

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

函数接口定义:

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
编译:
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");      else      printf("Invalid input\n");   }  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");      else      printf("Invalid input\n");   }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: