递归和非递归实现n的阶乘

递归

#include<stdio.h>
#include<stdlib.h>
int  jiecheng(int n)
{
    if(n<=1)
        return 1;

    else if(n>1)
    {
       return n*jiecheng(n-1);
    }

}
int main()
{
    int n = 0;
    int ret = 0;
    printf("请输入n\n");
    scanf("%d",&n);
    ret = jiecheng(n);
    printf("%d",ret);
    system("pause");
    return 0;
}

非递归

#include<stdio.h>
#include<stdlib.h>
int  jiecheng(int n)
{
    int i = 0;
    int ret = 1;
    for(i = 1;i<=n;i++)
    {
        ret=ret*i;
    }
    return ret;
}
int main()
{
    int n = 0;
    int ret = 0;
    printf("请输入n\n");
    scanf("%d",&n);
    ret = jiecheng(n);
    printf("%d\n",ret);
    system("pause");
    return 0;
}

运行结果
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sister_wang0712/article/details/80216682