汉诺塔问题(递归与分治)

来源:互联网 发布:lol网络环境异常 编辑:程序博客网 时间:2024/04/28 05:26

 

#include<iostream>using namespace std;//////////////////////////////////void move(char a,char b,int n){printf("将%d号盘子从%c移动到%c上\n",n,a,b);}//////////////////////////////////void hanoi(int n,char a,char b,char c){if(n <= 0)return;hanoi(n-1,a,c,b);move(a,b,n);hanoi(n-1,c,b,a);}/////////////////////////////////void main(){ hanoi(5,'a','b','c');}/*将1号盘子从a移动到b上将2号盘子从a移动到c上将1号盘子从b移动到c上将3号盘子从a移动到b上将1号盘子从c移动到a上将2号盘子从c移动到b上将1号盘子从a移动到b上将4号盘子从a移动到c上将1号盘子从b移动到c上将2号盘子从b移动到a上将1号盘子从c移动到a上将3号盘子从b移动到c上将1号盘子从a移动到b上将2号盘子从a移动到c上将1号盘子从b移动到c上将5号盘子从a移动到b上将1号盘子从c移动到a上将2号盘子从c移动到b上将1号盘子从a移动到b上将3号盘子从c移动到a上将1号盘子从b移动到c上将2号盘子从b移动到a上将1号盘子从c移动到a上将4号盘子从c移动到b上将1号盘子从a移动到b上将2号盘子从a移动到c上将1号盘子从b移动到c上将3号盘子从a移动到b上将1号盘子从c移动到a上将2号盘子从c移动到b上将1号盘子从a移动到b上*/