孙祯圻-6分.txt

来自「这是很不错的计算机算法」· 文本 代码 · 共 47 行

TXT
47
字号
//学号: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 + =
减小字号Ctrl + -
显示快捷键?