python - SPOJ Problem Set (classical) 6. Simple Arithmetics
PHP中文网
PHP中文网 2017-04-17 11:47:16
[Python讨论组]

题目的详细要求看这里:http://www.spoj.com/problems/ARITH/

觉得看英文麻烦的可以看这里:http://blog.csdn.net/tiaotiaoyly/article/details/2087975

看时间是一道很老的题目,但是网上资料并不多,而且根据第二个链接我注意的地方都注意了,但是仍然WA,实在是要睡觉了,所以交给诸位网友啦~

下面是源码(如果你忍心看的话)

def Add(a, b):
    l = []
    alen = len(a)
    blen = len(b) 
    result = str(int(a) + int(b))
    relen = len(result)
    llen = alen > blen and alen or blen+1
    llen = relen > llen and relen or llen
    l.append(' ' * (llen - alen) + a)
    l.append(' ' * (llen - blen - 1) + '+' + b)
    l.append('-' * llen)
    l.append(' ' * (llen - relen) + result)
    List.append(l)

def Sub(a, b):
    l = []
    alen = len(a)
    blen = len(b)
    result = str(int(a) - int(b))
    relen = len(result)
    llen = alen > blen and alen or blen+1
    l.append(' ' * (llen - alen) + a)
    l.append(' ' * (llen - blen - 1) + '-' + b)
    l.append('-' * llen)
    l.append(' ' * (llen - relen) + result)
    List.append(l)

def Multi(a, b):
    l = []
    alen = len(a)
    blen = len(b)
    result = str(int(a) * int(b))
    relen = len(result)
    llen = relen > blen+1 and relen or blen+1
    _len_bove = alen > blen and alen or blen+1
    _len_below = len(str(int(a) * int(b[-1])))
    _len = _len_bove > _len_below and _len_bove or _len_below
    l.append(' ' * (llen - alen) + a)
    l.append(' ' * (llen - blen - 1) + '*' + b)
    l.append(' ' * (llen - _len) + '-' * _len) 
    for i in range(blen):
        cpt = str(int(a) * int(b[-i-1]))
        l.append(' ' * (llen - len(cpt) - i) + cpt)
    if blen != 1:
        l.append('-' * llen)
        l.append(' ' * (llen - relen) + result)
    List.append(l)

n = input()
List = []
for i in range(n):
    string = raw_input()
    if '+' in string:
        a, b = string.split('+')
        Add(a, b)
    elif '-' in string:
        a, b = string.split('-')
        Sub(a, b)
    elif '*' in string:
        a, b = string.split('*')
        Multi(a, b)

for l in List:
    for i in l:
        print i
    print 
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号