您的位置:首页 > 其它

三个桶,分别为19升(空)、13升(满)、7升(满),请问最少多少步可以做到两个10升的??

2011-12-23 22:49 225 查看
void MoveOne()

{

int A=13, B=7, C=0;

int MaxA=13, MaxB=7, MaxC=19;

//*******************************************************************

B = 0;

C = 7;

cout<<"B->C: "<<A<<" "<<B<<" "<<C<<endl;

A = 1;

C = 19;

cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;

//*******************************************************************

while(C-MaxB != 10)

{

while(1)

{

B = (C>MaxB) ? MaxB : C;

C = C - B;

cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;

int temp = A+B>MaxA ? A+B-MaxA : 0;

A= A+B>MaxA ? 13 : A+B;

B = temp;

cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;

if(B != 0)

{

break;

}

}

C=A+C;

A=0;

cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;

A=B;

B=0;

cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;

}

//*******************************************************************

C = C-MaxB;

B = MaxB;

cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;

A= A+B;

B=0;

cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐