递归函数必须有递归结束的条件。
虽然递归是效率低下的算法,但是有些情况只能使用递归解决。
#include <stdio.h>
int factorial(int num);
int main()
{
int sum,a;
scanf("%d",&a);
sum=factorial(a);
if(sum){
printf("%d的阶乘是%d",a,sum);
}
return 0;
}
int factorial(int num)
{
int t_result;
if(num<0)
{
t_result=0;
printf("输入错误!");
} else if(num==0||num==1){
t_result=1;
} else{
t_result=num*factorial(num-1);
}
return t_result;
}