问题描述:
输入一个整数n,求它的阶乘。
注:0!= 1
源代码:
方法一:递归
#include <stdio.h>
#include <stdlib.h>
int fack(int n)
{
if(n == 0)
{
return 1;
}
return n*fack(n-1);
}
int main()
{
int n = 0;
printf("请输入一个数:");
scanf("%d",&n);
int result = fack(n);
printf("%d的阶乘是:%d\n",n,result);
return 0;
}
方法二:迭代(非递归)
#include <stdio.h>
#include <stdlib.h>
int fact2(int n)
{
int sum = 1;
int i=1;
for(i=1;i<=n;i++)
{
sum*=i;
}
return sum;
}
int main()
{
int n = 0;
int result = 0;
printf("请输入一个数:");
scanf("%d",&n);
result = fact2(n);
printf("%d的阶乘是:%d\n",n,result);
return 0;
}