Jugs problem python

来源:互联网 发布:mac打不开dmg文件 编辑:程序博客网 时间:2024/06/15 16:32
def dsf(a,b,ca,cb,cr,atemp,btemp):    if a==cr or b==cr:        print 'Success'        return 0    if a==0:        print 'fill '+atemp        a = ca    if b==cb:        print 'Empty '+btemp        b = 0    print 'Pour '+atemp+' '+btemp    temp = cb-b    if a<temp:        b = b+a        a = 0        dsf(a,b,ca,cb,cr,atemp,btemp)    else:        a = a-temp        b = cb        dsf(a,b,ca,cb,cr,atemp,btemp)        a = raw_input()while a:    temp = a.split(' ')    print temp    l = len(temp)        if l!=3:        print 'No success'            ca = int(temp[0])    cb = int(temp[1])    cr = int(temp[2])    a = 0    b = 0    atemp = 'A'    btemp = 'B'    if ca<cb:        dsf(a,b,cb,ca,cr,btemp,atemp)    else:        dsf(a,b,ca,cb,cr,atemp,btemp)    a = raw_input()


C++代码:

#include <iostream>using namespace std;int ca, cb, n;int main(){int curra, currb;while ( cin >> ca >> cb >> n ){   curra = currb = 0;   while ( currb != n )   {    if ( 0 == curra )    {     cout << "fill A" << endl;     curra = ca;    }    if ( curra + currb <= cb )    {     cout << "pour A B" << endl;     currb += curra;     curra = 0;    }    else    {     cout << "pour A B\nempty B\npour A B" << endl;     currb = (curra + currb) % cb;     curra = 0;    }   }   cout << "success" << endl;}return 0;}


原创粉丝点击