//将a塔移动到b塔上
void hanoi(int n,int a,int b,int c)
{
if(n>0)
{
hanoi(n-1,a,c,b);
move(a,b);
hanoi(n-1,c,b,a);
}
}
hanoi塔的递归算法。要将塔从a移动到b上,首先将前n-1个盘移动到c上,再将a塔剩下的一个移动到b上,最后将c塔上的n-1个盘移动到b塔上。
本文介绍了一个经典的递归算法实例——汉诺塔问题。通过递归的方式实现了将塔从一个柱子移动到另一个柱子的过程,展示了递归算法的魅力。
//将a塔移动到b塔上
void hanoi(int n,int a,int b,int c)
{
if(n>0)
{
hanoi(n-1,a,c,b);
move(a,b);
hanoi(n-1,c,b,a);
}
}
hanoi塔的递归算法。要将塔从a移动到b上,首先将前n-1个盘移动到c上,再将a塔剩下的一个移动到b上,最后将c塔上的n-1个盘移动到b塔上。
2万+

被折叠的 条评论
为什么被折叠?