关于猎人过河的问题(菜鸟起航,老鸟带路)
猎人要带一条狼、一只羊和一棵大白菜过河。船太小,一次只能带一样。但猎人不在场的情况下,狼要吃羊,羊要吃白菜。请设计一个C程序为猎人指出所有安全的渡河放案。就是这样的题目。
我刚开始的想法是转化为数学问题,如:狼为1,羊为2,大白菜为3,然后相加就是不能出项1+2=3或2+3=5;但按这样的思路下去,程序根本写不下去。
求老鸟给个思路,或者认为上面方法可行的也给个建议!
谢谢!!
int pgy(a,b,c,d) { if((a!=b)&&(a!=c)&&(a!=d)&&(b!=c)&&(b!=d)&&(c!=d)) return (1); else return (0); } main() { int a,b,c,d,sumA=0,sumB=0; for(a=1;a<5;a++) for(b=1;b<5;b++) for(c=1;c<5;c++) for(d=1;d<5;d++) { if(pgy(a,b,c,d)) { sumA=a+b; sumB=c+d; if((sumA%2==0)&&(sumB%2==0)) printf("%d,%d\t%d,%d\n",a,b,c,d); } } getch(); }列出所有能存在的情况