Recursive and non-recursive implementation of factorial of n

recursion

#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;
}

non-recursive

#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;
}

operation result
write picture description here

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325757524&siteId=291194637