汉诺塔 总算弄明白了
汉诺塔 终于弄明白了
/* 汉诺塔 ( 又称河内塔 ) 问题是源于印度一个古老传说的益智玩具 。 古代有一个梵塔 , 塔内 个座 A 、 B 、 C , A 座上有 64 个盘子 , 盘子大小不等 , 大的在下 , 小的在上 。 有一个和尚想把 个盘子从 A 座移到 B 座 , 但每次只能允许移动一个盘子 , 并且在移动过程中 , 3 个座上的盘 终保持大盘在下,小盘在上。在移动过程中可以利用 B 座,下面左图给出了移动方法的提示 编制递归函数输出盘子数为 4 时 ( 程序调试后 , 试试 15 个 、 20 个 , 直至 64 个 , 看看会如何 动的方案。 */ /* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: x.cpp * 作者:徐本锡 * 完成日期: 2012年 11 月24 日 * 版本号: v1.0 * 输入描述:无 * 问题描述:无 * 程序输出:步骤 */ //我的代码: #include <iostream> using namespace std; const int discCount=3;//定义个数 void move(int n, char A, char B,char C);//声明函数 int main() { move(discCount,'A','B','C'); return 0; } void move(int n, char A, char B,char C)//自定义函数 { if(n==0)//盘子为0的时候返回 { return; } else { move(n-1,A,C,B);//先从A到B cout<<A<<"-->"<<C<<endl;//再从A到C move(n-1,B,A,C);//最后从B到C return; } }