c++河内塔问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:27:26
void hanoi(int n,char one,char two,char three)
{ if (n==1) move (one,three);
else
{ hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
这是河内塔中递归的算法,我想问下hanoi和move后面的参数是怎么得出来的,可不可以把参数对调为什么???

是“汉诺塔”,不过这是音译,无所谓
看来这也是从书上找来的,你必须深刻理解递归的原理和汉诺塔的规则,然后按照这个算法实际进行一次,就是让自己执行电脑的程序,不要偷懒,一步一步来,进行一两遍你就会明白了

你没理解书上递归的思想,再看看书吧

你把书上的过程演示一下就知道了 ,我当初看的时候就是演示了6个盘子的情况