用递归法和非递归法实现n的阶乘
#include <stdio.h>
int fac(int n) //递归
{
if(n<0)
{
printf("n<0,data error!\n");
}
else if(n==0 || n==1) return 1;
else
{
return n*fac(n-1);
}
return 0;
}
int fac_f(int n) //非递归
{
int sum=1;
for(;n>0;n--)
{
sum *=n;
}
return sum;
}
int main()
{
int n,ret=0,ret2=0;
printf("input an interger number:\n");
scanf("%d",&n);
ret=fac(n);
ret2=fac_f(n);
printf("递归法:%d!= %d\n",n,ret);
printf("非递归法:%d!= %d\n",n,ret2);
return 0;
}