大家晚上好呀,今天要给大家分享的是关于递归函数的应用:汉诺塔。
这个问题在我们递归函数算是很经典的。那我们就来看看吧。
首先什么是汉诺塔?就是我们有三个杆子xyz,然后x杆上面有一堆由小到大排列的盘子,然后我们要把它们从x杆借助移到z杆,并且在移动的过程中,要保持从小到大的顺序,并且一次只能移动一个盘子。
还是很抽象,我们可以借助我老师的图,或者有兴趣的还可以从网上找几个汉诺塔的游戏玩玩。
然后上述流程可以先拆分成每次把最底下的盘子移到目的的杆子,可以分为两步走,一:是把n-1个盘子移到y杆,二:把x杆最后的盘子移动到目的杆子z。然后又可以调用自己,再次把在y杆上n-1-1个盘子移到x把剩下最大的移到z上,以此类推,直到只剩下一个盘子就直接放在z杆上。
我们尝试一下,但是我失败了,只能先写一部分
为什么出错?因为我定义的函数和是char 但是我里面形参定义了一个int类型,错啦。
先这样,我的代码还不太好,自己还有点乱,夜深啦,明天再写,大家晚安。