汉诺塔问题

题目链接:汉诺塔

简单递归思想

ac代码:

#include
#include
#include

using namespace std;

void Hanoi(int n,char a,char b,char c)
{
	//只有一个盘子的时候直接把它从a盘移动到c盘
	if(n==1){
		printf("%d:%c->%c\n",n,a,c);
	}else{
		//把n-1个盘子从a移动到b
		Hanoi(n-1,a,c,b);
		printf("%d:%c->%c\n",n,a,c);
		//把n-1个盘子再从b盘移动到c盘
		Hanoi(n-1,b,a,c);
	}
}

int main()
{
	int n;
	char a,b,c;
	cin>>n>>a>>b>>c;
	Hanoi(n,a,b,c);
	return 0;
}

推荐详解博文:
汉诺塔问题详解

你可能感兴趣的:(汉诺塔问题)