这个是老师讲过的题,老师很用心的讲了好长时间,总结出来了一点,但面对”这些“代码的时候,我有些退却了,于是我参考了一下老师的代码。。。
这道题的题意就是,给你两个知道杯子(没有刻度),和一瓶可乐,能否平分。
这是广度搜索,起初可乐在瓶子里。然后判断哪个被子里有可乐,哪个没有,当没有的时候,就倒入这个杯子,但还需要考虑能不能全倒进去,所以就需要在加判断语句,倒完以后,就需要把它再加入队列,继续去判断。代码看得很复杂,但是理清思路就很容易了。
这道题的题意就是,给你两个知道杯子(没有刻度),和一瓶可乐,能否平分。
这是广度搜索,起初可乐在瓶子里。然后判断哪个被子里有可乐,哪个没有,当没有的时候,就倒入这个杯子,但还需要考虑能不能全倒进去,所以就需要在加判断语句,倒完以后,就需要把它再加入队列,继续去判断。代码看得很复杂,但是理清思路就很容易了。
#include<iostream>
using namespace std;
int coke(int b,int c)
{
if(b<c)
{
int t=b;
b=c;
c=t;
}
if(c==0)
return b;
else
coke(c,b%c);
}
int main()
{
int a,b,c;
while(cin>>a>>b>>c)
{
if(a==0&&b==0&&c==0)
break;
a=a/coke(b,c);
if(a%2)
cout<<"NO"<<endl;
else
cout<<a-1<<endl;
}
}
using namespace std;
int coke(int b,int c)
{
if(b<c)
{
int t=b;
b=c;
c=t;
}
if(c==0)
return b;
else
coke(c,b%c);
}
int main()
{
int a,b,c;
while(cin>>a>>b>>c)
{
if(a==0&&b==0&&c==0)
break;
a=a/coke(b,c);
if(a%2)
cout<<"NO"<<endl;
else
cout<<a-1<<endl;
}
}