原题 题意 : 就是A B 壶相互倒水,直到B壶的水满足一定数值N 。
一开始没搞懂这道题的输出,oj判断的就是得出其中一个解就可以了???好像没啥别的硬性规定,搞得我晕乎了好一阵,直接就一个一个判断数值就好了。
代码如下:(要么一直填A ,要么一直填B ,思路是一样的)
#include <stdio.h>
int main( )
{
int Ca , Cb , N , a , b ;
while ( ( scanf("%d %d %d",&Ca , &Cb , &N )) != EOF )
{
a = 0 ;
b = 0 ;
if ( Cb == N )
{
printf("fill B\n");
printf("success\n");
continue ;
}
if ( Ca == N )
{
printf("fill A\n");
printf("pour A B\n");
printf("success\n");
continue ;
}
while ( b != N )
{
if ( a == 0 )
{
//如果A壶没有了,那就填满
a = Ca ;
printf("fill A\n");
}
if ( b == Cb )
{
//如果B壶满了,那就倒掉
b = 0 ;
printf("empty B\n");
}
if ( a > (Cb-b ) )
{
//只要A壶中的水够把B壶填满,那就把B壶灌满
a -= Cb - b ;
b = Cb ;
printf("pour A B\n");
}
else
{
b += a ;
a = 0 ;
printf("pour A B\n");
}
}
printf("success\n");
}
return 0;
}