Gear.Turbo

汉诺塔c#

今天突然想起来本科时期自学pascal遇到汉诺塔问题时的困惑,现在刷牙间静心一想,思路是何等的清晰,于是把c#代码下写来,以做记录:

using System;

using System.Text.RegularExpressions;


class tower
{
 private static void Move(int count, char A, char B, char C)
 {
          if (count == 1)
          {
                Console.WriteLine("Move disc {0}----->{1}", A, C);
                return;
          }
          Move(count-1, A, C, B);
          Console.WriteLine("Move disc {0}----->{1}", A, C);
          Move(count-1, B, A, C);
 }
 public static void Main(string[] args)
 {

        Regex r = new Regex("^[0-9]*[1-9][0-9]*$");

        Match m = r.Match(args[0]);

        if (!m.Success)

        {

            Console.WriteLine("输入有误,请输入正整数!");

            return;

        }
        int count = int.Parse(args[0]);
        Console.WriteLine("Task: Move {0} discs from A pass B to C", count);
        Move(count, 'A', 'B', 'C');
 }
}


posted on 2006-12-22 23:27  lsp  阅读(624)  评论(0)    收藏  举报

导航