- 论坛徽章:
- 0
|
这里有两个简单的实现n的阶乘的代码,请高手分析分析pro1是不是算是递归实现,而这两段代码是如何在递归工作站实现的。
pro1:
#include<stdio.h>
unsigned long jc(unsigned int,unsigned long);
int main(int argc,char **argv)
{printf("Please input the numnber:");
unsigned int n; unsigned long sum=1;
scanf("%d",&n);
printf("%ld\n",jc(n,sum));
return 0;
}
unsigned long jc(unsigned int n,long unsigned sum)
{
if(n==0){sum*=1;return sum;}
else
{sum*=n;
jc(n-1,sum);
}
}
pro2:
#include<stdio.h>
unsigned long jc(unsigned int,unsigned long);
int main(int argc,char **argv)
{printf("Please input the numnber:");
unsigned int n; unsigned long sum=1;
scanf("%d",&n);
printf("%ld\n",jc(n,sum));
return 0;
}
unsigned long jc(unsigned int n,long unsigned sum)
{
if(n==0)sum=1;
else
sum=n*jc(n-1,sum);
return sum;
} |
|