1.游戏界面如下图,游戏描述,把X针上的圆盘移动到 Z 针上,(圆盘放置的规则:大盘在下,小盘在上)
2.游戏分析,假设X针上有64个盘子
3.游戏代码
class Program
{
//统计移动次数
public static long count = 0;
static void Main(string[] args)
{
TowerofHanoi(64,"X","Y","Z");
Console.WriteLine(string.Format("共移动{0}次",count));
Console.Read();
}
/// <summary>
///
/// </summary>
/// <param name="n">待移动的盘子数量</param>
/// <param name="X">盘子原来所在的针</param>
/// <param name="Y">借助的中间针</param>
/// <param name="Z">目标移动的针</param>
public static void TowerofHanoi(int n, string X, string Y, string Z)
{
if (n == 1)
{
//如果只有一个盘子。直接移动到目标针即可
Console.WriteLine(X + " -> " + Z);
++count;
}
else {
TowerofHanoi(n - 1, X, Z, Y);//把X前n-1个盘子,借助Z,从X移动到Y
Console.WriteLine(X + " -> " + Z);//然后把最后一个盘子从X移动到Z
TowerofHanoi(n - 1, Y, X, Z);//最后把Y上的n-1个盘子,借助X,从Y移动到Z
}
}
}
4.递归的应用,
利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。
二分查找法
遍历文件夹中的文件
遍历树节点等