dire
2015-11-10 07:30
#include<stdio.h> #include<stdlib.h> //用递归函数来计算N的阶乘 double factorial(int n) { double result; if(n<0) { printf("输入错误\n"); } else if(n==1 ||n==0) { result=1; } else { result=factorial(n-1)*n; //n=5 5-1=4 4*5=20 接下来该怎么算呢 麻烦前辈指点一下! } return result; } int main () { double n ; scanf("%lf",&n); printf("%lf的阶乘=%g\n",n,factorial(n)); printf("%lf的阶乘=%lf\n",n,factorial(n)); return 0; }
当n=5时由主函数一直调用它本身 结果就是result=factorial(4)*5 此时再次调用了factorial这个函数 结果返回result=factorial(3)*4*5 后面继续调用 结果就是1*2*3*4*5
result=factorial(n-1)*n这里就是你又回到factorial这个函数啊
C语言入门
926028 学习 · 20793 问题
相似问题