题目:递归和非递归分别实现求n的阶乘
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//非递归实现n的阶乘
int Factor(int n)
{
int ret = 1;//处理0的阶乘和1的阶乘
for (int i = 1; i <= n; i++)
{
ret = ret*i;
}
return ret;
}
//递归实现n的阶乘
int Factor(int n)
{
if (n == 0||n==1)
{
return 1;
}
return n*Factor(n - 1);
}
int main()
{
int num = 0;
scanf("%d", &num);
int ret = Factor(num);
printf("%d", ret);
system("pause");
return 0;
}
运行结果: