hanoi.cpp

来自「数据结构课程实验之一」· C++ 代码 · 共 35 行

CPP
35
字号
#include "iostream.h"

int counter=0;   //用于统计操作的步骤数

void move(char one,char two){
cout<<"\t"<<one<<"-->"<<two<<endl;
counter++;
}

void Hanoi(int n,char one,char two,char three){   //汉诺塔问题的递归实现
if(n==1) move(one,three);
else{
   Hanoi(n-1,one,three,two);
   move(one,three);
   Hanoi(n-1,two,three,one);
}
}

void main()
{
int n;
char one,two,three;
          
cout<<"此为汉诺塔的简单实现,设三个支架依次为 A,B,C\n";
cout<<"   请输入盘子的个数 n : "<<endl;
cin>>n;
one='A';
two='B';
three='C';

cout<<"移动的步骤为:\n";
Hanoi(n,one,two,three);
cout<<"总的操作步骤为: "<<counter<<endl;
}

⌨️ 快捷键说明

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