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

来源:5-7 递归函数(一)

慕函数5028394

2021-03-07 10:45

#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;
}


写回答 关注

1回答

  • 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

    Fy拒绝摆烂

    lihai

    2022-10-18 19:12:47

    共 3 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题