求程序代码,农夫、狼、羊和白菜过河问题.农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:17:59
求程序代码,农夫、狼、羊和白菜过河问题.农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管

求程序代码,农夫、狼、羊和白菜过河问题.农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管
求程序代码,农夫、狼、羊和白菜过河问题.
农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管的情况下.狼要吃羊,羊要吃菜,请问农夫如何菜能使三样东西平安过河?
程序设计课要求写出其程序代码?

求程序代码,农夫、狼、羊和白菜过河问题.农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STEP 20
//index:0 - 狼,1-羊,2-菜,3-农夫,value:0-本岸,1-对岸
int a[MAX_STEP][4];
int b[MAX_STEP];
char *name[] =
{
"空手",
"带狼",
"带羊",
"带菜"
};
void search(int iStep)
{
int i;
if (a[iStep][0] + a[iStep][1] + a[iStep][2] + a[iStep][3] == 4)
{
for (i = 0; i < iStep; i++)
{
if (a[i][3] == 0)
{
printf("%s到对岸\n",name[b[i] + 1]);
}
else
{
printf("%s回本岸\n",name[b[i] + 1]);
}
}
printf("\n");
return;
}
for (i = 0; i < iStep; i++)
{
if (memcmp(a[i],a[iStep],sizeof(a[i])) == 0)
{
return;
}
}
if (a[iStep][1] != a[iStep][3] && (a[iStep][2] == a[iStep][1] || a[iStep][0] == a[iStep][1]))
{
return;
}
for (i = -1; i <= 2; i++)
{
b[iStep] = i;
memcpy(a[iStep + 1],a[iStep],sizeof(a[iStep + 1]));
a[iStep + 1][3] = 1 - a[iStep + 1][3];
if (i == -1)
{
search(iStep + 1);
}
else if (a[iStep][i] == a[iStep][3])
{
a[iStep + 1][i] = a[iStep + 1][3];
search(iStep + 1);
}
}
}
int main()
{
search(0);
return 0;
}
结果:
带羊到对岸
空手回本岸
带狼到对岸
带羊回本岸
带菜到对岸
空手回本岸
带羊到对岸
带羊到对岸
空手回本岸
带菜到对岸
带羊回本岸
带狼到对岸
空手回本岸
带羊到对岸
Press any key to continue
加我的qq号 476758573
我帮你详细解释再给你流程图啊
虽然时间过了 但希望有用啊
另外,站长团上有产品团购,便宜有保证

求程序代码,农夫、狼、羊和白菜过河问题.农夫、狼、羊和白菜过河问题.一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管 求思维训练题一道例如农夫要带白菜,羊,狼过河的那种题目,羊要吃白菜,狼要吃羊.具体忘咯,就是此类题目,求. 狼羊白菜过河问题 图论问题:农夫带着狼、羊、白菜从河的左岸到河的右岸,农夫每次只能带一样东西多河,而且,没有农夫看管,狼会吃羊,羊会吃白菜.提示:利用图论解决问题.(用农夫、狼 1个农夫带着1只狼 1只羊 1篮白菜 过河 ,船很小,除了农夫以外只能容纳1样,可是狼羊共处狼会吃掉羊 羊和菜共处羊会吃菜 请问农夫应该怎么过河哎·················· 狼和羊白菜过河一只狼和一只羊要过河还有一颗白菜.一次只能过两样.在狼不能吃羊羊也不能吃白菜的前题下要怎么过去 狼吃羊样吃白菜这是大家都知道的,但是一个农夫要运狼,羊,白菜这三样过河要怎么运? 农夫要带狼、羊、草过河,但船每次只能容纳农夫和一样东西,如果农夫不在狼会吃羊,羊会吃草.求算法. 要一些比较难得数学过河问题.就是那种羊狼和草还有农夫那种题,三个以上加分~ 一个农夫一条船 他要带狼羊白菜过河 一次只能带一样过河怎么带! 一个农夫一条船 他要带狼羊白菜过河 一次只能带一样过河怎么带! 农夫过河,带着草,羊,狼,狗.过河带两样,只准过两次,问怎么过? 一名农夫带了一只狗,一只兔和一棵白菜过河,已知他每次只能带两样过河,可狗咬兔,兔吃菜,农夫怎样才能一楼的你说的我想过可我觉的不好 兔子狗白菜过河问题?有几种? 一个农夫带着一只狼,一只羊,一只兔,一颗白菜过河!狼吃羊,羊吃兔,兔吃白菜,狼吃兔,狼也吃白菜,农 一位农夫要带一条狗、一只兔子和一颗白菜过河,可是船太小,农夫每次只能带其中的一个,如果农夫不在,兔子会吃白菜,狗会咬伤兔子.农夫要怎么样做才能把它们安全的渡过河呢? 一个人带着一只狼,一只羊和一捆白菜过河 一农夫,带着一只狐狸、一只小山羊和一些白菜过河,每次只能拿一种东西,假如先把白菜拿过河,剩下狐狸和山羊,山羊就会被狐狸吃掉.假如先把狐狸送过河,山羊就会把白菜吃掉.你看该怎样过 一个人带了一狼,一羊和一白菜过河,船太小,每次只能带一件东西,他不在,狼要吃羊,羊要吃白菜 要考虑第一次和第二次过河之后