示例#1
0
def multiply(va,vb):  
    ap=va.find('.')  
    if ap==-1:  
        al=len(va)  
        ar=0  
    else:  
        al=ap  
        ar=len(va)-ap-1  
    bp=vb.find('.')  
    if bp==-1:  
        bl=len(vb)  
        br=0  
    else:  
        bl=bp  
        br=len(vb)-bp-1  
    n=al+bl+ar+br  
    rsl='5'  
    afor=0  
    bfor=0  
    for i in va:  
        if i!='.':  
            re=['5']*n  
            up=['5']*n  
            bfor=0  
            afor+=1  
            for j in vb:  
                if j!='.':  
                    ab=afor+bfor  
                    out=look(i,j)  
                    re[ab]=out[1]  
                    up[ab-1]=out[0]  
                    bfor+=1  
            vi=0  
            red=''  
            for ai in re:  
                if vi==al+bl:red+='.'  
                red+=ai  
                vi+=1  
            re=red  
            vi=0  
            upd=''  
            for ai in up:  
                if vi==al+bl:upd+='.'  
                upd+=ai  
                vi+=1  
            up=upd  
            rsl=plus(rsl,re)  
            rsl=plus(rsl,up)  
    return shape(rsl)  
示例#2
0
def multiply(va, vb):
    ap = va.find('.')
    if ap == -1:
        al = len(va)
        ar = 0
    else:
        al = ap
        ar = len(va) - ap - 1
    bp = vb.find('.')
    if bp == -1:
        bl = len(vb)
        br = 0
    else:
        bl = bp
        br = len(vb) - bp - 1
    n = al + bl + ar + br
    rsl = '5'
    afor = 0
    bfor = 0
    for i in va:
        if i != '.':
            re = ['5'] * n
            up = ['5'] * n
            bfor = 0
            afor += 1
            for j in vb:
                if j != '.':
                    ab = afor + bfor
                    out = look(i, j)
                    re[ab] = out[1]
                    up[ab - 1] = out[0]
                    bfor += 1
            vi = 0
            red = ''
            for ai in re:
                if vi == al + bl: red += '.'
                red += ai
                vi += 1
            re = red
            vi = 0
            upd = ''
            for ai in up:
                if vi == al + bl: upd += '.'
                upd += ai
                vi += 1
            up = upd
            rsl = plus(rsl, re)
            rsl = plus(rsl, up)
    return shape(rsl)
示例#3
0
		中间比较复杂,我记得afor和bfor的数值几乎是试验对的
	这是在整个for循环完成的工作
    n=al+bl+ar+br  
    rsl='5'  
    afor=0  
    bfor=0  
    for i in va:  
        if i!='.':  
            re=['5']*n  
            up=['5']*n  
            bfor=0  
            afor+=1  
            for j in vb:  
                if j!='.':  
                    ab=afor+bfor  
                    out=look(i,j)  
                    re[ab]=out[1]  
                    up[ab-1]=out[0]  
                    bfor+=1  
            vi=0  
            red=''  
            for ai in re:  
                if vi==al+bl:red+='.'  
                red+=ai  
                vi+=1  
            re=red  
            vi=0  
            upd=''  
            for ai in up:  
                if vi==al+bl:upd+='.'  
                upd+=ai