汉诺塔
汉诺塔问题,解决思想
假设有A,B,C三个柱子,盘子都在A柱子上,要移动到C柱子上
如果盘子数量大于1,把A上的前n-1个盘子从A借助C移到B,
将A柱子上的第n个盘子直接移到C
讲B柱子上的n-1个盘子借助A移到C
如果A上只有一个盘子,直接从A移动到C
函数实现
void Function(int n, string a, string b, string c) { if(n==1) { Console.WriteLine("编号为{0}的盘子,从{1}移动到{2}",n, a, c); } else { Function(n-1, a, c, b); Console.WriteLine("编号为{0}的盘子,从{1}移动到{2}",n, a, c); Function(n-1, b, a, c); } } int main() { string a="A", b="B", c="C"; int n = 10; Function(10, a, b, c); }