- 非遞歸法
#include <stdio.h>
#include <stdlib.h>
int Factor(int n)
{
if (n==1)
{
return 1;
}
if (n == 0)
{
return 0;
}
return n * Factor(n-1);
}
int main()
{
int n;
scanf_s("%d", &n);
printf("%d\n", Factor(n));
system("pause");
}
- 遞歸法
#include <stdio.h>
int main()
{
int n;
int sum=1;
scanf("%d",&n);
if (n==0)
{
printf("0");
}
else if (n==1)
{
printf("1");
}
else
{
for(int i=2;i<=n;i++)
{
sum=sum*i;
}
printf("%d",sum);
}
}