一个硬币移动游戏的求解算法(二)

2014-11-24 07:47:15 · 作者: · 浏览: 1
;
}
else
{
// 到这里说明当前的移动是不对的
coins = coins2;
depth ++;
continue; // 试探下一种移动
}
}
}
// 到这里说明所有的移动方式都试过了,全都不行
return false;
}
最后是主程序,就几行,不用多解释:
[cpp]
int main()
{
string coins(" ABABA ");
if(solve(coins, 5))
{
cout << coins << endl;
}
return 0;
}
程序输出的结果如下:
AAABB
ABAA B
A ABAB
AABAB
ABAAB
ABABA
需要说明的是,因为是递归,所以输出的结果要从下往上看。