[color=#FF0000][/color]就这样结了?!!!!!#include<iostream.h>
#include<math.h>
int main()
{
int a[4],b[4],p[15];//(a)为起始岸,(b)为彼岸 p指什么?
int k,i,j,c;j=0;p[0]=0;//k,i,j,c分别是什么?! for(i=1;i<=3;i++)
{
a[i]=i+1;//神马意思? b[i]=0;//初始化
}
while(1)//Repeat run,Until a[1]==0 && a[2]==0 && a[3]==0;
{
for(i=1;i<=3;i++)//这个循环里的表示的是什么意思?
{
c=a[i];//神马意思?
a[i]=0;
if(abs(a[1]-a[2])==1||abs(a[1]-a[3])==1||abs(a[2]-a[3])==1||c==0)//余下状态相容 神马意思?
a[i]=c;
else
break;
}
a[i]=p[j];p[++j]=c;
if(a[1]==0 && a[2]==0 && a[3]==0) break; //始岸已空,都渡过去了
if(b[1]==0 && b[2]==0 && b[3]==0)
{
b[1]=c;
p[++j]=0;//神马意思?
continue;
}
k=0;
for(i=1;i<=3;i++)
if(b[i]!=0)
{
k=b[i];
break;
}
if(abs(k-c)==1)
{
p[++j]=k;
b[i]=c;
continue;
}
p[++j]=0;
for(i=1;i<3;i++)
if(b[i]=0) b[i]=c;
}
cout<<endl<<endl;
for(i=1;i<=j;i++) //输出渡河过程
{
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n/n";
switch(p[i])
{
case 0:cout<<"(Nothing)"; break;
case 2:cout<<"(Cabbage)"; break;
case 3:cout<<"(Sheep)"; break;
case 4:cout<<"(Wolf)"; break;
}
if(i%2)
cout<<"------------------>/n";
else
cout<<"<-------------------/n";
}
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n";
return 0;
}
~~~~(>_<)~~~~ 俺笨,谁能给解释下么???????????????
人狼羊菜过河问题
最新推荐文章于 2021-12-15 11:15:34 发布