【C语言】利用递归函数求n的阶乘

递归实现n的阶乘

    什么是阶乘:0!= 1,n!=n * (n - 1) * (n - 2)......3 * 2 * 1;

  解题思路: 1> 分析题意,很明显0是递归出口;
                     2> 很好看出,递归调用自己,直到n等于0,返回之前的函数,直到最后一个;
                     3> 一个简单n的阶乘就计算完成,返回并输出。
代码:

#include<stdio.h>
int f(int n)/*递归函数*/
{
    int fac;
    if (n < 0)
        printf("n<0,data error!");
    else
        if (n == 0 || n == 1)
            fac = 1;
        else
            fac = f(n - 1) * n;
    return fac;
}
int main()
{
    int n, y;
    printf("请输入一个整数:
");
    scanf_s("%d", &n);
    y = f(n);
    printf("%d!=%d", n, y);
    return 0;
}
原文地址:https://www.cnblogs.com/HGNET/p/12049677.html