當前位置:編程學習大全網 - 編程語言 - 乘船渡河的規劃

乘船渡河的規劃

# include & ltstdio.h & gt

int s[100],t = 0;

void BA(int a[4],int b[4]);

void徐(int a[4])

{

int i,j,k;

for(I = 0;我& lt3;i++)for(j = I+1;j & lt4;j++)if(a[I]& lt;a[j])

{

k = a[I];

a[I]= a[j];

a[j]= k;

}

}

int f(int a[4],int x)

{

int i,j=0,b[4];

for(I = 0;a[I];i++)

{

if(i==x)繼續;

b[j]= a[I];

如果(j & amp& ampb[j]==b[j-1]-1)返回1;

j++;

}

返回0;

}

整數g()

{

int i,r;

for(I = t-1;我& gt= t/2;i-=2)

{

for(r = 0;r & ltt-I;r++)if(s[t-r]!= s[I-r])break;

if(r==t-i)破;

}

如果(我& ltt/2)返回0;

否則返回1;

}

void huan(int a[4],int b[4],int x)

{

int I;

for(I = 0;壹個[我]!= x;i++);

a[I]= 0;

b[3]= x;

徐(壹);

徐(乙等);

}

void AB(int a[4],int b[4])

{

int I;

for(I = 0;a[I-1]| | I = = 0;i++)

{

if(f(a,I))繼續;

s[t]= a[I];

if(g())繼續;

歡(a,b,s[t]);

t++;

if(a[0]= = 0)break;

BA(甲,乙);

if(a[0]= = 0)break;

t-;

歡(b,a,s[t]);

}

}

void BA(int a[4],int b[4])

{

int I;

for(I = 0;b[I-1]| | I = = 0;i++)

{

if(f(b,I))繼續;

s[t]= b[I];

if(g())繼續;

歡(b,a,s[t]);

t++;

AB(a,b);

if(a[0]= = 0)break;

t-;

歡(a,b,s[t]);

}

}

void main()

{

int i,a[4]={3,2,1},b[4]= { 0 };

AB(a,b);

for(I = 0;我& ltt;i++)

{

If(i%2)printf("農民從B銀行到A銀行:");

Else printf("從A銀行到B銀行的農民:");

開關

{

案例0:printf(" nothing ");打破;

案例1:printf(“帶狼過河”);打破;

案例二:printf(“牽羊過河”);打破;

案例三:printf(“把食物帶過河”);打破;

}

printf(" \ n ");

}

}

  • 上一篇:經濟學專業要用好哪些統計學軟件?
  • 下一篇:怎樣才能在stackexchange上面提問?
  • copyright 2024編程學習大全網