为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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 回答

假设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

15 回复 有任何疑惑可以回复我~
#1

编程兴趣小白

是我逻辑思维能力差吗?还是因为我是新手的原因,就是想不明白,能再讲的通俗易懂些吗?谢谢。
2021-11-19 回复 有任何疑惑可以回复我~
#2

weixin_慕盖茨0040835 回复 编程兴趣小白

+666
2022-01-21 回复 有任何疑惑可以回复我~
#3

Fy拒绝摆烂

lihai
2022-10-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信