问答详情
源自:5-7 递归函数(一)

不知哪位大神能解释一下这个代码?还是新手,请帮帮忙!

#include<stdio.h>
int factorial(int n)
{	
    int result;	
    if(n<0)	
    {		
        printf("输出错误!\n");		
        return 0;
    }
    else if(n==0||n==1)	
    {		
        result=1;	
    }	
    else	
    {		
        result=factorial(n-1)*n;	
    }	
    return result;
}
int main()
{	
    int n=5;	
    printf("%d的阶乘=%d",n,factorial(n));	
    return 0;
}


提问者:慕函数5028394 2021-03-07 10:45

个回答

  • EddardF
    2021-03-11 01:23:09
    已采纳

    假设n=5

    factorial(5)=factorial(4)*5=factorial(3)*4*5=factorial(2)*3*4*5=factorial(1)*2*3*4*5

    又因为factorial(1)=1

    所以 factorial(5)=1*2*3*4*5