要搞清楚递归函数,这里我们研究子函数get_factorial即可,若num=5,有get_factorial(5)=get_factorial(4)*5=get_factorial(3)*4*5=get_factorial(2)*3*4*5=get_factorial(1)*2*3*4*5=1*2*3*4*5=120.
#include <stdio.h>
long int get_factorial(int num)
{
long int factorial;
if(num == 1){
factorial=1;
}else{
factorial=get_factorial(num-1)*num;
}
return factorial;
}
int main()
{
long int factorial;
long int data;
puts("输入你要求的阶乘");
scanf("%d",&data);
factorial=get_factorial(data);
printf("求得%d的阶乘为%d\n",data,factorial);
return 0;
}