电信产品的特点:C语言,帮我看下这两个题怎么做?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 02:47:33
3、常见算法的实现2(递归实现N!、整数转换成字符串ittoa)
主要是递归实现N这个看不懂是什么意思?

#define N 10
int jiecheng(int num)
{
if(num==1) return 1;
return num*jiechent(num-1);
}

void main()
{
printf("N!=%d\n",jiecheng(N));
}

unsigned long DG(unsigned long N)
{if(N>1)N=N*DG(N-1);
return N;}
N!=N*[(N-1)!]=N*(N-1)*[(N-1)!]=N*...*(1!)
int *itoa(int i)
{char str[8];
char j,ys,sgnd=10;
str[7]=0;
if(i<0)sgnd=-10;
for(j=5;j>0;j--)
{ys=i%sgnd;i/=10;
str[j]=48+ys;
if(i==0)break;}
if(sgnd==-10){j--;str[j]='-';}
return &(str[j]);}

int jiecheng(int num) //这个函数体
{
if(num==1) return 1; 当num是1的时候返回1,也就是递归的推出条件,就是num=1的时候
return num*jiechent(num-1); 函数里面又用的了这个函数!这就是递归
}

n!是n的阶乘,其数学意义是n!=1*2*3*4*......*n
C语言实现如下:(本程序在Turboc 2.0环境下调试通过)
int factorial(int n)
{
if(n == 1)
{
return 1;
}
else
{
return n * factorial(n - 1);
}
}

main()
{
int N,F;
scanf("%d",&N);
F=factorial(N);
printf("%d\n",F);
}

递归函数常用来求解n!(某数的阶乘)
#inclide<stdio,h>
int factorial
int fac(int number)/*由子函数实现求解阶乘*/
{int factorial;
if(number<0)prinft("input Error!");
else if(number==0||number==1)/*递归结束条件*/
factorial=1;
else
factorial=fac(number-1)*number;/*递归调用*/

return factorial;
}
main()
{int inum;
printf("Please enter a number:");
scanf("%d",&inum);
printf("\n%d!=%d\n",inum,fac(inum));

这哪里涉及递归了?没看出来