toh.cpp

来自「经典c++程序的实现」· C++ 代码 · 共 26 行

CPP
26
字号
#include <iostream.h>
#include <stdlib.h>
#include "..\include\book.h"

typedef int POLE;
#define move(X, Y) cout << "Move " << (X) << " to " << (Y) << "\n";

void TOH(int n, POLE start, POLE goal, POLE temp) {
  if (n == 0) return;          // Base case
  TOH(n-1, start, temp, goal); // Recursive call: n-1 rings
  move(start, goal);           // Move one disk
  TOH(n-1, temp, goal, start); // Recursive call: n-1 rings
}

int main(int argc, char** argv) {

  if (argc != 2) {
    cout << "Usage: toh <num_of_disks>\n";
    exit(-1);
  }
  cout << "Doing " << atoi(argv[1]) << " disks\n";

  TOH(atoi(argv[1]), 1, 3, 2);
  return 0;
}

⌨️ 快捷键说明

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