人狼羊菜过河问题

[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;
}


~~~~(>_<)~~~~ 俺笨,谁能给解释下么???????????????

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值