C语言:递归和非递归分别实现求n的阶乘

递归和非递归分别实现求n的阶乘

①非递归

#include <stdio.h>
#include <stdlib.h>

int fac(int n)
{
    int ret = 1;
    int i = 0;
    for (i = 1; i <=n; i++)
    {
        ret = ret*i;
    }
    return ret;
}
int main()
{
    int n = 0;
    printf("请输入一个数:");
    scanf_s("%d", &n);
    int fac(n);
    printf("%d\n", fac(n));
    system("pause");
    return 0;
}

②递归

#include <stdio.h>
#include <stdlib.h>

int fac(int n)
{
    if (n <= 1)
    {
        return 1;
    }
    else
    {
        return n*fac(n - 1);
    }
    
}
int main()
{
    int n = 0;
    printf("请输入一个数:");
    scanf_s("%d", &n);
    int fac(n);
    printf("%d\n", fac(n));
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42270373/article/details/81280620