1. 程式人生 > >PAT基礎程式設計題目集——6-8 簡單階乘計算

PAT基礎程式設計題目集——6-8 簡單階乘計算

原題目:

本題要求實現一個計算非負整數階乘的簡單函式。

函式介面定義:

int Factorial( const int N );

其中N是使用者傳入的引數,其值不超過12。如果N是非負整數,則該函式必須返回N的階乘,否則返回0。

裁判測試程式樣例:

#include <stdio.h>

int Factorial( const int N );

int main()
{
    int N, NF;
	
    scanf("%d", &N);
    NF = Factorial(N);
    if (NF)  printf("%d! = %d\n", N, NF);
    else printf("Invalid input\n");

    return 0;
}

/* 你的程式碼將被嵌在這裡 */

輸入樣例:

5

輸出樣例:

5! = 120

分析:

1.題目保證輸入值不會超過12,所以不用擔心使用int時溢位,故直接走程式。

2.題目要求數值不會超過12,所以有可能小於0,對於小於0的值直接返回0,其他值則計算階乘。

程式碼:

int Factorial( const int N )
{
  int i=1,a=1;
  if(N<0) return 0;
  else
  {
    for(i=1;i<=N;i++)
    {
      a=a*i;
    }
    return a;
  }
}