Pyの||ロング整数減算

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/Lhw_666/article/details/102754652

题目描述
結果が非負であることを保証するために、2つの長い整数(0以上で、100の電源10より大きくない)との間の差を計算し、出力する。
输入
入力を評価するために長い整数のペアの集合であります、その各々は、二つの長い整数として作用する。
输出
長い整数の各対の間の差が出力され、1本のライン毎の差のために出力される。
样例输入コピー
2 1
100000000 50
样例输出コピー
1
99999950

def solution(line,line1):
    a = [int(i) for i in line ]
    b = [int(i) for i in line1 ]
    if len(a)<len(b) or (len(a)==len(b) and a[0]<b[0]):
        s=a
        a=b
        b=s
    res = ''
    for i in range(len(b)):
        flag_a = len(a)-1-i
        flag_b = len(b)-1-i
        if a[flag_a]>= b[flag_b]:
            res = str(a[flag_a]-b[flag_b])+res
        else:
            res = str(10+a[flag_a]-b[flag_b])+res
            while a[flag_a-1]==0:
                a[flag_a-1]=9
                flag_a -= 1
            a[flag_a-1] -= 1
    for j in range(len(a)-1-i-1,-1,-1):
        res = str(a[j])+res
    zero_flag=0
    for i in range(len(res)):
        if res[i]!='0':
            zero_flag=1
            break
    if zero_flag==0:
        return 0
    return res[i:]
while True:
    s=[str(i) for i in input().split()]
    s1=[]
    s2=[]
    s1=[s[0]]
    s2=[s[1]]
    print(solution(s1,s2))

おすすめ

転載: blog.csdn.net/Lhw_666/article/details/102754652