C语言---递归--求n的阶乘

简介: C语言---递归--求n的阶乘
//递归---求n的阶乘
//n的阶乘就是1~n的数字累计相乘
//n!=n*(n-1)!
//当n=0时,n的阶乘为1
 
Fact(int n)//传参穿过来一个n
{
    if (n == 0)
        return 1;
    else if (n > 0)
        return n * Fact(n - 1);//就是n*(n-1)!
}
 
 
 
int main()
{
    int n = 0;
    scanf_s("%d", &n);
    int r = Fact(n);//n的阶乘
    printf("%d\n",r);
    return 0;
}
//当输入数字是5的时候,n传上去的n是5,因为n>0,所以进行n * Fact(n - 1)、
//也就是n*(n-1)!    5*4!
//然后一次进行下去
//到最后,Fact(1)=1*Fact(0),因为Fact(0)=1,所以Fact(1)=1
//Fact(2)=2
//Fact(3)=6
//Fact(4)=24
//Fact(5)=120
//先递推再回归
相关文章
|
8天前
|
C语言
C语言--函数递归与迭代
C语言--函数递归与迭代
|
15天前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
30 7
TU^
|
16天前
|
机器学习/深度学习 C语言
C语言之函数递归
C语言之函数递归
TU^
14 1
|
5天前
|
C语言
【C语言】:递归题
【C语言】:递归题
12 0
|
8天前
|
C语言
C语言----递归--n的k次方
C语言----递归--n的k次方
11 0
|
8天前
|
C语言
C语言---循环迭代---n的阶乘
C语言---循环迭代---n的阶乘
10 0
|
8天前
|
C语言
C语言---函数递归
C语言---函数递归
|
8天前
|
C语言
C语言---递归---输入一个整函数,按照顺序打印每一位
C语言---递归---输入一个整函数,按照顺序打印每一位
|
16天前
|
机器学习/深度学习 算法 C语言
【C语言基础】:函数递归详解
【C语言基础】:函数递归详解
|
1月前
|
C语言
C语言递归问题【青蛙跳台阶】和【汉诺塔】
C语言递归问题【青蛙跳台阶】和【汉诺塔】