该题目写出的代码不考虑溢出的问题。
(1)代码如下:
int main()
{
int i = 1;
int n = 0;
int ret = 1;
scanf("%d",&n);
for(i = 1;i <= n;i++)
{
ret = ret * i;
}
printf("%d\n",ret);
return 0;
}
(2)代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fac(int n)
{
if (n <= 1)
return 1;
else
return n *fac(n - 1);
}
int main()
{
int n = 0;
scanf("%d",&n);
int ret = fac(n);
printf("ret = %d\n",ret);
return 0;
}
运行结果:
(3)代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fac(int n)
{
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret *= i;
}
return ret;
}
int main()
{
int n = 0;
scanf("%d",&n);
int ret = fac(n);
printf("ret = %d\n",ret);
return 0;
}
运行结果: