网站搭建源码:分别编写一个递归的和非递归的求阶乘的函数

来源:百度文库 编辑:高校问答 时间:2024/05/05 06:28:14
用C语言编写

递规
long jicheng(long a)
{
if (a==1||a==0)
return 1;
else
return (a*jicheng(a-1));
}
main()
{
int a;
printf("输入需计算的数据:");
scanf ("%u",&a);
printf ("计算结果%u\n",jicheng(a));
system("PAUSE");
}

非递规
main()
{
unsigned long i,a;
unsigned long acc;
printf("输入需计算的数据:");
scanf ("%u",&a);
acc = 1;
for (i=1;i<=a;i++)
acc = acc*i;
printf ("计算结果%u\n",acc);
system("PAUSE");
}

递归:
long fact(int n)
{
if(i==1||i==0)
return 1;
else
return n*fact(n-1);
}
非递归:
long fact2(int n)
{
long sum;
for(int i=1;i<=n;i++)
sum*=i;
return sum;
}