c语言用递归公式求函数值 c语言递归函数的概念及用法

C语言:用递归函数求出f(x)=xn的值,要求:x和n的值在主函数中输入,并在主函数中将运算结果输出

#include stdio.h

专注于为中小企业提供成都网站设计、做网站、成都外贸网站建设公司服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业绥德免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

main()

{ int x,n;

long f(int x,int n);

scanf("%d %d",x,n);

printf("%ld",f(x,n));

system("PAUSE");

}

long f(int x,int n)

{ if(n==1)return(x);

else return(x*f(x,n-1));

}

用C语言的函数递归方法来求

#include stdio.h

#include math.h

void fun2(int m)

{

int k=0,a[10];

for(int i=2;im;i++)

if(m%i==0)

a[k++]=i;

for(int i=0;ik;i++)

{

printf("%d",a[i]);

if(i!=k-1)

printf(",");

}

}

void fun1(int m)

{

if(m2)

printf("%d is a prime number",m);

for(int i=2;i*i=m;i++)

if(m%i==0)

fun2(m);

else

printf("%d is a prime number",m);

}

int main( )

{ int n;

scanf("%d",n);

fun1(n);

return 0;

}

递归实现计算 c语言

int rec(int x,int n)

{

if(n==0)

return 1;

else

return rec(x,n-1)*x;

}

int main()

{

int x,n;

printf("请输入x和n\n");

scanf("%d%d",x,n);

printf("结果是:%d\n",rec(x,n));

}

c语言递归函数

递归具体用法其实就是让你把一个问题分解成很多个类似的情况,虽然你要解决这个问题非常难,莫名其妙,要你想几年,但是把他一直递归分解,就变成很好理解的单种情况,而你整个问题又是跟这个单种情况类似,把整个问题通过递归调用一层一层分解到最低级简单的那种情况,就是你所需要理解的了。

一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。

(引自谭浩强的C语言书里)

用递归法计算n!可用下述公式表示:

n!=1 (n=0,1)

n×(n-1)! (n1)

具体如下long ff(int n)

{

long f;

if(n0) printf("n0,input error");

else if(n==0||n==1) f=1;

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

return(f);

}

main()

{

int n;

long y;

printf("\ninput a inteager number:\n");

scanf("%d",n);

y=ff(n);

printf("%d!=%ld",n,y);

}

较难题:一块板上有三根针,A,B,C。A针上套有64个大小不等的圆盘,大的在下,小的在上。如图5.4所示。要把这64个圆盘从A针移动C针上,每次只能移动一个圆盘,移动可以借助B针进行。但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上。求移动的步骤。

具体如下move(int n,int x,int y,int z)

{

if(n==1)

printf("%c--%c\n",x,z);

else

{

move(n-1,x,z,y);

printf("%c--%c\n",x,z);

move(n-1,y,x,z);

}

}

main()

{

int h;

printf("\ninput number:\n");

scanf("%d",h);

printf("the step to moving %2d diskes:\n",h);

move(h,'a','b','c');

}

从程序中可以看出,move函数是一个递归函数,它有四个形参n,x,y,z。n表示圆盘数,x,y,z分别表示三根针。move 函数的功能是把x上的n个圆盘移动到z上。当n==1时,直接把x上的圆盘移至z上,输出x→z。如n!=1则分为三步:递归调用move函数,把n-1个圆盘从x移到y;输出x→z;递归调用move函数,把n-1个圆盘从y移到z。在递归调用过程中n=n-1,故n的值逐次递减,最后n=1时,终止递归,逐层返回。当n=4 时程序运行的结果为:


文章标题:c语言用递归公式求函数值 c语言递归函数的概念及用法
URL分享:http://scyanting.com/article/hghsjd.html