#include<stdio.h>
int i; //目标容量
void pour(int a,int y,int z) //a:满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量
{ int b=0,c=0; //a,b,c分别为各个瓶的实际容量
printf(" a b c\n%4d%4d%4d\n",a,b,c); while(true) { if(a==i||b==i||c==i){break;}
if(!b) { a-=y; b=y;} else if(c==z) { a+=z; c=0;} else if(b>z-c) { b-=(z-c);c=z;} else if(b<=z-c){ c+=b; b=0;} printf("%4d%4d%4d\n",a,b,c); } }
int main() { int a,y,z; printf("input full a,empty b,c,get i:"); scanf("%d%d%d%d",&a,&y,&z,&i);
pour(a,y,z); //a->y->z->a倒酒
pour(a,z,y); //a->z->y->a倒酒
}
|