C++
#include <iostream>
using namespace std;
//将src座上的n个盘子,以mid座位中转,移动到dest座
void Hanoi(int n,char src,char mid,char dest)
{
if(n==1)
{
//直接将盘子从src移动到dest即可
cout<<src<<"->"<<dest<<endl;
//需要跳出,或者用else语句,可以不加return
return;
}
Hanoi(n-1,src,dest,mid); //先将n-1个盘子从src移动到mid,可以用3个盘子来想象一下
cout<<src<<"->"<<mid<<endl;//再将一个盘子从src移动到dest
Hanoi(n-1,mid,src,dest);//最后将n-1个盘子从mid移动到dest
//return;
}
int main()
{
int n;
cin>>n; //n代表盘子数
Hanoi(n,'A','B','C');
return 0;
}
Java
import java.io.*;
class test
{
public static void hanoi(int n,char a,char b,char c)
{
if(n==1)
System.out.println(a + "->" + c);
else
{
hanoi(n-1,a,c,b);
System.out.println(a + "->" + c);
hanoi(n-1,b,a,c);
}
}
public static void main (String[] args) throws java.lang.Exception
{
hanoi(4,'A','B','C');
}
}