c# 递归解决汉诺塔问题
- 标签:递归 汉诺塔 更新时间:2014-05-21
HanioTower.cs代码内容:递归解决汉诺塔问题,C#汉诺塔问题实例演示。将n个盘从from柱移到to柱,以aux柱为辅助柱,仅有一个盘时,直接从from柱移到to柱,将3个圆盘从A柱移到C柱,移动时利用B柱为辅助柱:
using System; public class HanoiTower { // 将n个盘从from柱移到to柱,以aux柱为辅助柱 public static void move(int n, char from, char to, char aux) { if (n == 1) { // 仅有一个盘时,直接从from柱移到to柱 Console.WriteLine("将 #1 盘从 {0} 移到 {1}", from, to ); } else { // 将n - 1个盘从from柱移到aux柱,以to柱为辅助柱 move(n - 1, from, aux, to); // 将最下的圆盘从from柱移到to柱 Console.WriteLine("将 #{0} 盘从 {1} 移到 {2}", n, from, to ); // 将n - 1个盘从aux柱移到to柱,以from柱为辅助柱 move(n - 1, aux, to, from); } } public static void Main( ) { // 将3个圆盘从A柱移到C柱,移动时利用B柱为辅助柱 move(3, 'A', 'C', 'B'); } }
- 已读:
次 收藏本文关闭本文打印本文复制链接