c语言用递归函数求n c语言用递归函数求1到100的和

用c语言,利用递归函数求n!,由键盘输入任一整数,求n!

首先明确题目要求:递归函数,求n!

成都创新互联公司主要从事成都网站制作、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务拉孜,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

递归函数的含义:

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。

n!表示阶乘函数,即1*2*3*……*n

下面给出代码:(C语言实现 )

比较简单的尾递归实现:

#includestdio.h

long digui(int n);  //递归函数声明

int main()

{

int n;  

scanf("%d",n);

printf("the result is %ld",digui(n)); //打印出递归值

return 0;

}

long digui(int n)  //递归函数部分

{

if(n1)   

return n*digui(n-1);   //调用递归,让n与n-1相乘,直到n1时

return 1;   //n1时,返回1,实现 n*(n-1)*(n-2)*……*3*2*1

}

c语言用递归法计算n

long ff(int n)       //函数作用是计算N的阶乘                    

long f;

if(n0)printf("n0,input error");//n不能为负数

else if(n==0||n==1)f=1;//这里使ff(0)和ff(1)等于1

else f=ff(n-1)*n;//这里使ff(n) = n * ff(n-1),重要,因为当形参n = n-1时,ff(n-1) = ff(n-2) * (n-1),所以这一步实际实现了n阶乘计算,即ff(n) = n * ff(n-1) = n * (n-1) * ff(n-2).....*ff(1) *ff(0),因为ff(0) == ff(1) == 1.所以ff(n) = n!实现。

return(f);

}

c语言编程:用递归实现计算n!。

由于对于任意的n,

n! = (n-1)! * n;

即令f(n) = n!,存在公式

f(n)  = f(n-1) * n;

在这个递归公式下,编写递归求阶乘代码如下:

int fac(int n)

{

if(n == 0 || n == 1) return 1;

return fac(n-1)*n;

}

在C语言中用递归调用的方法如何求n?

#include stdio.h

int Func(int n)

{

if(n 2)

return 1;

else

return n*Func(n-1);

}

int main()

{

int n = 5;

printf("n! = %d\n",Func(n));

return 0;

}

执行过程:

-》Func(5)

-》5*Func(4)

-》5*(4*Func(3))

-》5*(4*(3*Func(2))))

-》5*(4*(3*(2*Func(1))))

当n为0的时候停止递归,返回结果

由于遇到1的时候返回1,那么Func(1)=1

所以结果是5*(4*(3*(2*1))) = 120

C语言用递归求n!

int fac(int n)

{

long fact;

if (n == 1)

fact = 1;

else //加上这个

fact = fac(n-1)*n;

return fact;

}


文章题目:c语言用递归函数求n c语言用递归函数求1到100的和
转载来源:http://myzitong.com/article/dodhcjs.html