什么是递归算法,递归算法需要调用几次函数

╰半橙微兮° 2023-09-28 10:01 171阅读 0赞

什么是递归算法

递归算法就是一个函数通过不断对自己的调用而求得最终结果的一种思维巧妙但是开销很大的算法。

汉诺塔的递归算法:

voidmove(charx,chary){

printf(“%c—>%c\n”,x,y);

voidhanoi(intn,charone,chartwo,charthree){

/*将n个盘从one座借助two座,移到three座*/

if(n==1)move(one,three);

else{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

main(){

intn;

printf(“inputthenumberofdiskes:”);

scanf(“%d”,&n);

printf(“Thesteptomoving%3ddiskes:\n”,n);

hanoi(n,’A’,’B’,’C’);

我说下递归的理解方法

首先:对于递归这一类函数,你不要纠结于他是干什么的,只要知道他的一个模糊功能是什么就行,等于把他想象成一个能实现某项功能的黑盒子,而不去管它的内部操作先,好,我们来看下汉诺塔是怎么样解决的

首先按我上面说的把递归函数想象成某个功能的黑盒子,voidhanoi(intn,charone,chartwo,charthree);这个递归函数的功能是:能将n个由小到大放置的小长方形从one位置,经过two位置移动到three位置。那么你的主程序要解决的问题

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读

    相关 算法-算法

    1、定义:函数(方法)直接或间接调用自身。 必须要有一个明确的结束递归的条件 > 递归的退出条件:思考临界值-`拿到参数对它的范围进行判断`

    相关 算法

    递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归函数(或过程)来表示问题的解。 一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(

    相关 算法

    今年上半年开展新项目, 每天都很忙 但也很充实, 学到了很多东西, 比如如何处理50M以上的Excel, 批量处理10W+的数据,新的设计模式等。。。 本次分享的是一个小技

    相关 算法

    定义:简单来说,递归算法就是直接或者间接调用自身的函数。把一个大型的复杂问题层层转换为一个与原问题相似的小规模的问题来求解。 例子:一列数的规则如下: 1、1、2、3、5、8

    相关 算法--

    递归: 注意两点: 1.边界条件时( 有时有return,有时是别的操作)代码里用橘红色标出 2.递归时参数变化(规模变小) 代码里用黄色标出  递归:你