C语言程序请教递归思路~~~在线等

C语言程序请教递归思路~~~在线等,第1张

#include<stdioh>

#define n 50//最高楼层 ,自己可能修改

void digui(int minute,int floor,int reach);

int count=0;//记录方案

main()

{

int minute=0;//时间

int floor=0;//初始时所在楼层

int reach=0;//到达时要所在楼层

printf("\n请输入时间(分钟):");

scanf("%d",&minute);

printf("\n请输入haozi所在楼层:(1~50)");

scanf("%d",&floor);

printf("\n请输入到达所在楼层:");

scanf("%d",&reach);

digui(minute,floor,reach);

printf("方案数:%d\n",count);//输出

getch();

}

void digui(int minute,int floor,int reach)//minute传递时间,floor传递所在层

{

if(minute!=0)//当时间不为0时

{

if(floor==n)//当在最高层时

{ digui(minute-1,floor-1,reach);}//时间减一分钟,只能向下走

else if(floor==1)//当在最低层时

{ digui(minute-1,floor+1,reach);}//时间减一分钟,只能向上走

else //当不在最高层和最低层时

{

digui(minute-1,floor-1,reach);//时间减一分钟,可能向下走

digui(minute-1,floor+1,reach);//时间减一分钟,可能向上走

}

}

if(minute==0&&floor==reach)//当时间为0时,且同时在reach层时,方案数加1

{count++;}//count记录方案数

}

1、在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。 在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。

2、递归函数 是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:

1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;

2) 必须有一个终止处理或计算的准则。

例如一个非法的递归(嵌套)调用:

void ff(){

ff();

}

int main()

{

ff();

system("pause");

return 0;

}

#include<stdioh>

int find(int a[],int n)

{

if(n==0)

return a[0];

else

return find(a,n-1)>a[n]find(a,n-1):a[n];

}

int main()

{

int a[5],i;

for(i=0;i<5;i++)

scanf("%d",&a[i]);

printf("%d",find(a,4));

return 0;

}

函数中 自己调用自己 就是 递归调用。例如阶乘计算,func调用func自己。

long func(int n) {long result;

if (n==0) result=1;

else

result = n func(n-1); //递归调用

return result;

}

以上就是关于C语言程序请教递归思路~~~在线等全部的内容,包括:C语言程序请教递归思路~~~在线等、用C++语言编写程序,递归函数、编一个程序,读入具有五个元素的实型数组,然后调用一个函数,递归地找出其中的最大元素,并指出它的位置。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9695566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存