ZOJ 1005 Jugs

时间:2023-03-09 03:37:16
ZOJ 1005 Jugs

原题链接

题目大意:有一大一小两个杯子,相互倒水,直到其中一个杯子里剩下特定体积的水。描述这个过程。

解法:因为两个杯子的容积互质,所以只要用小杯子不断往大杯子倒水,大杯子灌满后就清空,大杯子里迟早会出现需要的体积的水。不过也有可能小杯子先剩下符合要求的体积的水。

参考代码:

#include<iostream>

using namespace std;

int main(){
int ca,cb,n,q,r,i;
int a,b;
while(cin>>ca>>cb>>n){
a=0;
b=0;
while(1){
if(a==0){
a=ca;
cout<<"fill A"<<endl;
}
if(a+b>cb){
a=a+b-cb;
b=cb;
cout<<"pour A B"<<endl;
}
else{
b=a+b;
a=0;
cout<<"pour A B"<<endl;
}
if(b==n){
cout<<"success"<<endl;
break;
}
if(b==cb){
b=0;
cout<<"empty B"<<endl;
}
}
} return 0;
}