1.递归方法
#include<stdio.h>
#include<stdlib.h>
int Fac(int n)
{
if (n == 1)
{
return n;
}
else
{
return Fac(n - 1)*n;
}
}
int main()
{
int num=0;
int ret = 0;
printf("input a integer:\n");
scanf("%d", &num);
ret=Fac(num);
printf("结果为%d\n", ret);
system("pause");
return 0;
}
2.非递归(循环)
#include<stdio.h>
#include<stdlib.h>
int Fac(int n)
{
int i = 0;
int mul = 1;
for (i = 1; i <= n; i++)
{
mul *= i;
}
return mul;
}
int main()
{
int num = 0;
int ret = 0;
printf("input a integer:\n");
scanf("%d", &num);
ret = Fac(num);
printf("结果为%d\n", ret);
system("pause");
return 0;
}