1、首先要定义好程序的输入,比丛键如羊、狼、白菜的数量,然后定义程序的输出,比如最后剩下的羊、狼、白菜的数量物御。
2、再定义好程序的运行步罩郑岩骤,比如狼吃羊,羊吃白菜,白菜不动。
3、最后计算出结果。
一、2种方式:
1、把羊带到河对岸 ->把狼带到河对岸,再把羊带回来 - 把白菜带到河对岸 - 把羊带到河对岸;
2、把羊带到河对岸 ->把白菜带到河对岸,再把羊带回来 -把狼带到河对岸 -把羊带到河对岸;
二、问题分析:
抛开算法,把这个题当成是一个简单的逻辑题的话还是挺好解的,过不了多久你就会发现几个关键的问题:
1、要时刻注意农夫的位置,因为农夫不在地时候狼会吃羊,羊会吃菜;
2、第一步只能把羊带走;
3、最后一步只能是把羊从河对岸带过来;
会发现羊其实是问题的关键,只要保证羊和狼和白菜隔离开来,那么就很容易解这个问题。
扩展资料:
过河问题顷纯,其实质就是一种状态的改变,就像这个问题说的,农夫狼羊菜都要从河的这边到对岸去,也就对应了两个状态,一个是没过河的状态,一个是过了河的状态。
所以很自然的联想到了用0和1来表示他们的状态,并且每时每雀扒咐刻,农夫狼羊菜的状态都对应一个特定的状态,比如没过河的状态是0000,四个都没有过河,而过河的状态是1111。这样做的此衡好处是将问题抽象成了计算机能够处理的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)