用递归方法求阶乘n! C语言实现代码如下:
#include<stdio.h>
int main()
{
long a(int n);
int n;
long s;
printf("请输入n值:\n");
scanf("%d",&n);
s = a(n);
printf("变量n的值为:%d递归结果为:%ld\n",n,s);
}
long a(int n)
{
long c;
if(n<0){
printf("你的输入有误");
}else if(n==0 || n==1){ //当调用到最深层时
c=1;
}else{
c = a(n-1)*n;
}
return(c);
}
再给大家看2张比较形象的图帮助理解吧!