汉诺塔.cpp

来自「算法思路:   1.如果只有一个金片」· C++ 代码 · 共 46 行

CPP
46
字号
#include<iostream>
using namespace std;

int Counter;  // 计数器变量

//递归解汉诺塔问题
void Hanoi(char From, char To, char Auxiliary, int N)
{
    if ( N == 1 )
	{
		Counter++; 
		cout << "Step " << Counter <<" :";
		cout << " Move disk 1 from peg-" << From << " to peg-" << To <<endl;
	}
	else
	{
		Hanoi( From, Auxiliary, To, N - 1);
		Counter++;
        cout << "Step " << Counter <<" :";
		cout << " Move disk " << N << " from peg-" << From << " to peg-" << To <<endl;
		Hanoi( Auxiliary, To, From, N - 1 );
	}
}

int main()
{
	int   Number;
	char  Source;
	char  Destination;
	char  Auxiliary;

	Counter = 0;
	cout << "The tower of Hanoi program." << endl;
	cout << "Please enter the number of disks : ";
	cin >> Number;
	cout << "The Source peg :";
	cin >> Source;
	cout << "The Auxiliary :";
    cin >> Auxiliary;
	cout << "The Destination :";
	cin >> Destination;
	cout << endl;

	Hanoi(Source, Destination, Auxiliary, Number);
}

⌨️ 快捷键说明

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