本帖最后由 世界公民 于 2014-4-22 14:59 编辑
问题是:一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。当老农不和猫狗鱼在一起时,狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,则不会发生这种问题。编程解决猫狗鱼过河问题。
这是我基础测试时的一道题,我尽力用代码解出来了,但感觉不是非常好。我写的代码只是针对这个题的,如果换几个过河条件我的代码需要全部重写,当过河逻辑再难一点时我的这种解法就很难再有效果了。
希望有人可以指导我一下,写出一个普遍的解法,比如当过河条件变成这样:河边有警察、犯人、爸爸、妈妈、两个小男孩、两个小女孩和一条船,条件是当警察不在时犯人会伤害其他人,当爸爸不在时妈妈会伤害小男孩,当妈妈不在时爸爸会伤害小女孩,警察、爸爸、妈妈会开船,船一次只能拉两个人(算上开船的),请安全的把这些人送到对岸去。
希望有人指导一下,我希望写出一个好的解题方法,可以处理这类过河问题,比如当过河的条件更复杂时可以用程序计算出有没有过河的解,以及过河的具体步骤。
下面是我解农夫过河的代码(感觉很差,请大家指导):
|