zoukankan      html  css  js  c++  java
  • 汉诺塔的思考

    众所周知的汉若塔问题是典型的递归问题。

    基本思想是:如果要完成N个盘子的汉诺塔问题,首先思考如何完成N-1和盘子的汉若塔问题,为了便于思考,我们选择三个简单的汉诺塔问题进行设计。
    to代表目标柱子,from代表原始柱子,depend代表借助的柱子


    代码如下:
    #include "stdafx.h"
    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    
    void function3(int n, char from, char depend, char to)
    {
     if (n == 1)
     {
      cout << "将盘子" << n << "从" << from << "塔----->" << to<< "塔" << endl;
    
     }
     else
     {
      function3(n - 1, from, to, depend);      //完成n-1借助于to柱子从初始柱子到中间借助柱子
      cout << "将盘子" << n << "从" << from << "塔----->" << to << "塔"<<endl;
      function3(n - 1, depend, from, to);      //完成n-1借助于from柱子从之间借助柱子到目标柱子
     }
      
    }
    int main()
    {
     int n = 5;
     function3(n, 'a', 'b', 'c');
    }


  • 相关阅读:
    哈希表实例
    二叉排序树算法实例
    外部中断实验
    定时器计数实验
    顺序表和有序表查找实例
    查找的普通应用实例
    矩阵键盘实验
    LED数码管显示实验
    流水灯实验
    删除注释行和空行
  • 原文地址:https://www.cnblogs.com/liumantang/p/11830401.html
Copyright © 2011-2022 走看看