|
今天突然想起来本科时期自学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'); } }
|