非递归:
#include<stdio.h>
int factorial(int n)
{
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
return ret;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = factorial(n);
printf("%d\n", ret);
system("pause");
return 0;
}
递归:
#include<stdio.h>
int factorial(int n)
{
if (n > 0)
{
return n * factorial(n - 1);
}
else {
return 1;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = factorial(n);
printf("%d\n", ret);
system("pause");
return 0;
}