题目:用递归的方式求5!
分析:
1
5!=5*4*3*2*1 4!=4*3*2*1 所以 5!=5*4! 5!=5*(5-1)!2.
递归函数:是调用的一种,函数自己调用自己 典型的就是使用if else 语句 因为函数调用的是它本身,所以就需要判断它的停止条件 if else就很好地可以判断停止条件3.
例如: if(n=0 || n=1){ printf("n!=1"); }else{ printf("n!=n*(n-1)!"); }4.函数的递归
long jch(int n){ //阶乘的数都比较大,所以一般直接使用long if(n==1||n==0){ return 1; }else{ return n*jch(n-1); //调用的是 jch这个函数,这里对它怎么算先不管就是理解return的输出 } }5.
#includelong jch(int n){ if(n==1||n==0){ return 1; }else{ return n*jch(n-1); } } int main() { long jch(int n); int n=5; printf("jch(%d)=%dn",n,jch(n)); return 0; }
在这里我解释一下 函数是如何调用的自己过程,首先先看俩张图
1.我改变了输出,让函数调用的过程呈现出来
2.判断n大于1,就返回 得到jch(n-1),返回这个函数,继续判断,一直判断直到1或者为0
3.所以就是函数的自己调用自己,就是判断自己是不是符合停止条件,不符合就一直返回



