⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 孙祯圻-6分.txt

📁 这是很不错的计算机算法
💻 TXT
字号:
//学号:041321215
//姓名:孙祯圻
//专业:软件工程
//题目:hanoi塔问题

#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>

//定义第一根柱子A为1,目标B为2,辅助柱子C为3
#define A 1   
#define B 2
#define C 3

void move(int n,int column1,int column2,ofstream& ofile)
{
  //输出结果到文件里....char(column+n)转换代表柱子的数字为柱子名
  ofile<<n<<" "<<char(column1+64)<<" "<<char(column2+64)<<endl;
}

void hanoi(int n,int column1,int column2,int column3,ofstream& ofile)
{ if (n>1)
  {
    hanoi(n-1,column1,column3,column2,ofile); //先将最上的n-1个盘子从A柱移动到C柱
    move(n,column1,column2,ofile);            //再将最下的一个盘子n 从A柱移动到B柱
    hanoi(n-1,column3,column2,column1,ofile); //最后将放在C柱上的n-1个盘子移回B柱
  } else move(1,column1,column2,ofile);       //如果只有一个盘子,只需直接将其从A移动到B

}


void main()
{
  int n;

  ifstream inFile("input.txt");
  ofstream outFile("output.txt");

  inFile>>n;  //读取n值

  hanoi(n,A,B,C,outFile); //递归进行移动

  inFile.close();
  outFile.close();

}

⌨️ 快捷键说明

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