PAT基礎程式設計題目集——6-8 簡單階乘計算
阿新 • • 發佈:2018-11-24
原題目:
本題要求實現一個計算非負整數階乘的簡單函式。
函式介面定義:
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;
}
}