1.递归
//1.递归公式是fac(n)=n*fac(n-1)
//2递的过程结束的标志应该是n=1的时候
2.非递归
//使用一个for 循环,每次都用上一次乘积再乘上本次的i值
代码如下:
#include<stdio.h>
//递归
int fac1(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else
{
return fac1(n - 1)*n;
}
}
//非递归
int fac2(int n)
{
int i,s=1;
if (n == 0 || n == 1)
{
return 1;
}
else
{
for (i = 1; i <= n; i++)
{
s = s*i;
}
return s;
}
}
int main()
{
int n;
printf("请输入一个整数: ");
scanf("%d", &n);
int res1 = fac1(n);
int res2 = fac2(n);
printf("%d!=%d\n", n, res1);
printf("%d!=%d\n", n, res2);
return 0;
}