首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

汉罗塔问题的递归实现「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。 #include <iostream> using namespace std; void move(int m,char a,char b); void hanoi(int m,char one,char two,char three); int main(){ hanoi(4,’A’,’B’,’C’); return 0; } void move(int m,char a,char b){ cout<<m<<” from “<<a<<“—>”<<b<<endl; } //hanoi的函数说明,借助two这个柱子把盘子从one移动到three这根柱子上 void hanoi(int m,char one,char two,char three){ if(m==1){ move(m,one,three);//如果只有一个盘子,就直接从第1个位置移动到第3个 }else{ /* 如果需要移动的盘子m大于1个,思路是先把前m-1个盘子移动到中间的位置,然后再把第m个盘子移动到第三根柱子上 然后再借助第一根柱子把前m-1个盘子移动到第3根柱子上 */ hanoi(m-1,one,three,two); move(m,one,three); hanoi(m-1,two,one,three); }

03
领券