1.非递归
#include<stdio.h>
int jiecheng(int n)
{
int tmp = 1;
while (n > 0)
{
tmp *= n--;
}
return tmp;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = jiecheng(n);
printf("%d\n", ret);
return 0;
}
2.递归
#include<stdio.h>
int jiecheng(int n)
{
if (0 == n)
{
return 0;
}
else if (1 == n)
{
return 1;
}
else
{
return n * jiecheng(n - 1);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = jiecheng(n);
printf("%d\n", ret);
return 0;
}