码迷,mamicode.com
首页 > 其他好文 > 详细

汉诺塔问题

时间:2018-04-15 16:17:54      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:char   oid   问题   nbsp   col   color   style   ima   stream   

技术分享图片

 

算法如下:

 1 #include "stdafx.h"
 2 #include<iostream>
 3 using namespace std;
 4 int m = 0;
 5 void move( int n, char A, char C)          //把第n个盘子从A柱移到C柱  
 6 {
 7     cout << ++m << "," << n << "," << A << "," << C << endl;   //m为第几次执行移动操作
 8 }
 9 
10 void Hanoi(int n, char A, char B, char C)  //第n个盘子借助B柱从A柱移到C柱
11 {
12     if (n == 1)
13         move(1 , A , C);
14     else
15     {
16         Hanoi(n-1,A,C,B);                  //把第1——(n-1)个盘子看成一个整体,(n-1)个盘子借助C柱从A柱移到B柱
17         move( n ,A, C);                    //第n个盘子从A柱移到C柱
18         Hanoi(n - 1, B, A, C);             //把第n个(也就是最后的最大的那个盘子)从B柱借助A柱移到C柱
19     }
20 }
21 
22 int main()
23 {
24     int p;
25     cin >> p;
26     Hanoi(p, A, B, C);
27     return 0;
28 }

 

一组温馨的样例:

技术分享图片

 

汉诺塔问题

标签:char   oid   问题   nbsp   col   color   style   ima   stream   

原文地址:https://www.cnblogs.com/Trojan00/p/8847615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!