汉诺塔1


汉诺塔这种东西不能从程序的角度想 要从生活的角度想 原来从堆栈进出角度考虑就特别复杂 有些事是一层窗户纸 想多了反而没用


if a上面只剩下一个盘子 移到c else 把n-1的盘子移到b a->c b->c


 
using System;

using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1.基础.算法
{
public class 汉诺塔
{

int count = 1;

void move(int n,char x, char y)
{
Console.Write("" + count + "" + n + ":{0}-->{1}\n", x, y);
}



void hanoi(int n, char one, char two, char three)
{


if (n == 1)
{
move(n,one, three);
count++;
}
else
{
hanoi(n - 1, one, three, two);
move(n,one, three);
count++;
hanoi(n - 1, two, one, three);
}
}

public void main1()
{
int m;
Console.WriteLine("input the number of disks:");
m=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("the step to moving %3d diskes:\n", m);
hanoi(m, 'A', 'B', 'C');
}


}


 

转载于:https://www.cnblogs.com/frog2008/archive/2012/01/30/2331681.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值