#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
long factorial(int n)
{
if (n == 0)
{
return 1;
}
else
{
return n*factorial(n - 1);
}
}
long iterative_factorial(int n)
{
int i;
long r = 1;
for (i = 1; i <= n; i++)
{
r *= i;
}
return r;
}
int main()
{
int m;
long r;
printf("请输入m的值:");
scanf("%d", &m);
//r = factorial(m);//递归浪费空间,容易造成栈溢出
r = iterative_factorial(m);
printf("%d的阶乘是%d\n", m, r);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
long factorial(int n)
{
if (n == 0)
{
return 1;
}
else
{
return n*factorial(n - 1);
}
}
long iterative_factorial(int n)
{
int i;
long r = 1;
for (i = 1; i <= n; i++)
{
r *= i;
}
return r;
}
int main()
{
int m;
long r;
printf("请输入m的值:");
scanf("%d", &m);
//r = factorial(m);//递归浪费空间,容易造成栈溢出
r = iterative_factorial(m);
printf("%d的阶乘是%d\n", m, r);
system("pause");
return 0;
}