4-10階乗計算アップグレード版


この問題では、非負の整数乗算を印刷する関数を実現する必要があります.
関数インタフェースの定義:
void Print_Factorial ( const int N ); ここで、Nはユーザが入力したパラメータであり、その値は1000を超えない.Nが負の整数でない場合、この関数は1行にNを印刷する必要があります.を選択します.審判試験プログラムのサンプル:
#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
"
,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
"
); else printf("Invalid input
"
); }