#include <stdio.h>
#include <iostream>
using namespace std;
//汉诺塔问题:利用递归的思想实现(分治法)
void hannoi(int n,char A, char B ,char C){
if(1==n){
cout<<"Move" <<A<<"to"<<C<<endl;
return ;
}
//1.算出n-1个盘子,将其从A移到B
hannoi(n-1,A,C,B);
//2.把最大的盘子从A移到C
hannoi(1,A,B,C);
//3.把n-1个盘子从B移到C
hannoi(n-1,B,A,C);
}
int main(){
int n;
cout<<"请输入汉诺塔问题中圆盘的个数(整数):n=";
cin>>n;
hannoi(n,'A','B','C');
return 1;
}在这里插入代码片
运行结果截图: