递归和非递归分别实现求n的阶乘
1.非递归(for循环可以直接搞定)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0;
int i = 0;
int ret = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
ret = ret*i;
}
printf("%d", ret);
system("pause");
return 0;
}
2递归
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int jiecheng_r(int n)
{
if (n <= 1)
{
return 1;
}
return n *jiecheng_r(n - 1);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", jiecheng_r(n));
system("pause");
return 0;
}