hanoi.cpp

来自「这是有关数据结构的例程序」· C++ 代码 · 共 45 行

CPP
45
字号
#include <iostream>

using namespace std;

/*****************************************************************/
/**                                                             **/
/**   先将n-1个移动到C,然后把第n个移动到B,再把n-1个移动到B。  **/
/**                                                             **/
/*****************************************************************/

class C_Hanoi{
public:
	void HanoiSet(int, char, char, char);
};

void C_Hanoi::HanoiSet(int n, char A='A', char B='B', char C='C')
{
	if(n>0){
		HanoiSet(n-1, A, C, B);
		cout<<A<<" -> "<<B<<endl;
		HanoiSet(n-1, C, B, A);
	}
}

/*void Hanoi(int n, char A, char B, char C)
{
	if(n==1)
		cout<<A<<" -> "<<B<<endl;
	else{
		Hanoi(n-1, A, C, B);
		cout<<A<<" -> "<<B<<endl;
		Hanoi(n-1, C, B, A);
	}
}*/

int main()
{
	unsigned n;
	C_Hanoi ToH1;

	cin>>n;
	ToH1.HanoiSet(n);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?