l*********y 发帖数: 142 | 1 有没有人做过 uva254 汉诺塔,我连网上的解题报告也没有看懂,sigh!
能帮助看一下下面的解题报告吗?
http://hi.baidu.com/knowledgetime/blog/item/a3db08d21b2c9a379b5
不懂下面这段
if(b[i])
{
tower3++;
tmp=tower1; tower1=tower2; tower2=tmp;
}else
{
tower1++;
tmp=tower2; tower2=tower3; tower3=tmp;
}
我不是很理解为什么b[i] == 1, tower3++, 还有为什么要swap tower2 and tower3。
多谢了。 |
|
l*********y 发帖数: 142 | 2 有没有人做过 uva254 汉诺塔,我连网上的解题报告也没有看懂,sigh!
能帮助看一下下面的解题报告吗?
http://hi.baidu.com/knowledgetime/blog/item/a3db08d21b2c9a379b5
不懂下面这段
if(b[i])
{
tower3++;
tmp=tower1; tower1=tower2; tower2=tmp;
}else
{
tower1++;
tmp=tower2; tower2=tower3; tower3=tmp;
}
我不是很理解为什么b[i] == 1, tower3++, 还有为什么要swap tower2 and tower3。
多谢了。 |
|
z**********8 发帖数: 229 | 3 来自主题: JobHunting版 - 汉若塔问题 #include
using namespace std;
#include
#include
class Tower{
private:
int index;//indicate the number of tower
stack one_tower;
public:
Tower(int i=0):index(i){}//constructor
int getindex();
void add(int d);
void moveTopTo(Tower t);
void print();
void moveDisks(int n,Tower Destination,Tower buffer);
};
int Tower::getindex()
{
return index;
}
void Tower::add(int d)
{
if((!one_tower.empty())&&(d>one_tower.top()))
cout<<"... 阅读全帖 |
|