题目大意:有一大一小两个杯子,相互倒水,直到其中一个杯子里剩下特定体积的水。描述这个过程。
解法:因为两个杯子的容积互质,所以只要用小杯子不断往大杯子倒水,大杯子灌满后就清空,大杯子里迟早会出现需要的体积的水。不过也有可能小杯子先剩下符合要求的体积的水。
参考代码:
#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; }