这是一个经典的算法问题,从网上找到很多算法,但感觉写的都有些繁琐。下面是问题描述:
三个传教士和三个食人魔来到一条河的岸边,他们想渡河到对岸去,河的这边有一条小船,只能供两个人乘坐,可以是两个传教士或一个传教士一个食人魔,或两个食人魔。但是无论在河的此岸和彼岸如果食人魔的人数超过传教士的人数,食人魔就会把传教士吃掉,问怎样利用这条船才能把它们全渡过河去。
这个问题使用的方法有两种,一种深度遍历,一种是广度遍历。需要注意的是终止条件,只要把这两点把握好,剩下的就是写代码的基本功了。不多说,直接上代码:(不会编写格式,直接上图片了)