c语言解决人狗鸡米问题

来源:百度知道 编辑:UC知道 时间:2024/04/30 06:30:44
人、狗、鸡、米均要过河,船需人划,而船上至多还可载一物,但若人不在时,狗会吃鸡,鸡会吃米,问如何设计顺利过河方案.

谢谢提醒条件:鸡必须单独放置或者和人在一起.
流程:
人和鸡过河,然后将鸡留在对岸;然后回来接狗或者米过河,并将鸡带回;然后将米或者狗带到对岸,最后将鸡带过河.
设计思路:
typedef struct {
char status;//0 表示在此岸边 1表示在对岸
} ObjectStatus;
ObjectStatus man, dog, chick, mice;
搬运过程:
move(ObjectStatus obj1, ObjectStatus obj2);

判断条件
if ( ((dog.status==chick.status) &&
(chick.status!=man.status)) ||
(chick.status==mice.status)) &&
(man.status!=mice.status)) {
//failed
}

楼上:
条件:鸡必须单独放置或者和人在一起.