C#Hanoi
什么是汉诺塔问题
有ABC三个柱子,A柱子上现有除半径外其它都相同的n个圆环,圆环半径从小到大依次排列
要求: (1)把所有的圆环移到C柱子上
(2)每次只能移动一个圆环
(3)任何时候大圆环不能在小圆环的上面
代码
此处以三级汉诺塔为例
namespace Hanoi
{
class Program
{
static void Main(string[] args)
{
HanoiRecursive hanoiRecursive = new HanoiRecursive();
hanoiRecursive.SolveHanoi(3, 'A', 'B', 'C');//假设有三个圆环,从小到大依次为A、B、C
}
}
class HanoiRecursive
{
public void SolveHanoi(int n,char a,char b,char c)
{
if (n == 1)
{
Console.WriteLine(a+"->"+c);
}
else
{
SolveHanoi(n-1,a,c,b);
SolveHanoi(1, a, b, c);
SolveHanoi(n-1,b, a, c);
}
}
}
}