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
分析及答案
输出样例中的5! =
这一个部分是不需要我们实现的,函数只需要输出阶乘计算的结果,在6-6计算阶乘和的题目里已经实现过一次了,但这次的输入有可能是小于0的,用上一次的函数就会出现无限循环的情况,所以对于小于0的输入也要单独处理。
这次的输入值不会超过12,而且全都是整数,可以将0-12的阶乘值全部写进数组中,函数直接取出对应值即可,将
int Factorial(const int N){
if(N<0)
return 0;
if(N==0)
return 1;
int i,fac=1;
for(i=1;i<=N;i++)
fac*=i;
return fac;
}