#include<stdio.h>
#include<iostream>
using namespace std;
void hanoi(int n,char a,char b,char c) // 问题:将全部圆盘从A柱子移到C柱子
{
if(n==1)
{
cout<<a<<"-->"<<c<<endl; // 1个直接移
return;
}
hanoi(n-1,a,c,b); // a柱上面 n-1 个作为整体,移到b柱
cout<<a<<"-->"<<c<<endl; // a柱最底下1个,直接移到c柱
hanoi(n-1,b,a,c); // 剩下的 b柱 n-1 个作为整体,移到c柱
}
int main()
{
hanoi(3,'A','B','C'); // 共有3个圆盘,3根柱子:A,B,C
return 0;
}
汉诺塔问题(递归方法求解)
于 2024-08-01 11:56:42 首次发布