1005.Jugs

来源:互联网 发布:复杂网络理论及其应用 编辑:程序博客网 时间:2024/06/16 05:29

原题 题意 : 就是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;}




原创粉丝点击