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

1.非递归

#include<stdio.h>
int jiecheng(int n)
{
    int tmp = 1;
    while (n > 0)
    {
        tmp *= n--;
    }
    return tmp;
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = jiecheng(n);
    printf("%d\n", ret);
    return 0;
}

2.递归

#include<stdio.h>
int jiecheng(int n)
{
    if (0 == n)
    {
        return 0;
    }
    else if (1 == n)
    {
        return 1;
    }
    else
    {
        return n * jiecheng(n - 1);
    }
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = jiecheng(n);
    printf("%d\n", ret);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_40995778/article/details/80294818