汉诺塔的C#实现
具体原理不详述,关键把握以下几点:
- 三个char分别代表起始点,经过点,最终点
- WriteLine输出是指把盘子由起始点拿到最终点,并不一定是从A到C
- 故整体思路是先把上面n-1个盘子由A(经过C)拿到B ,再把第n个盘子从A直接拿到C(对应最后return的+1),最后把B的盘子(经过A)拿到C
- x = 1单独讨论,对应只有一个盘子时直接移动的特殊情况(A->C),同时也是每个递归的终点,表示每次移动单个盘子1
下面给出代码:
- 方法:
public int Hanno(int x,char A,char B,char C)
{
int a,b