ddddd Python 列表表示整数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lnotime/article/details/82312573

用列表来表示整数,比如[1,2,3]表示123,[9,9]表示99。

加法:

def add(num1: list, num2: list) -> list:
    """加法"""
    l1, l2 = len(num1), len(num2)
    l = max(l1, l2) + 1
    num1 = [0] * (l - l1) + num1  # 让两个数字长度相等,方便操作;都多一位0,方便进位
    num2 = [0] * (l - l2) + num2

    c = []  # 按位相加的结果,倒序存储
    j = 0   # 记录进位
    for i in range(l - 1, -1, -1):   # 个位开始相加
        temp = num1[i] + num2[i] + j  # 中间值
        c.append(temp % 10)
        j = temp // 10

    return c[-2 + c[-1]::-1]  # 去掉最高位的0
def _test():
    print(add([0], [0]), 0 + 0)                      # [0] 0
    print(add([9, 9, 9], [0]), 999 + 0)              # [9, 9, 9] 999
    print(add([9, 9, 9], [1]), 999 + 1)              # [1, 0, 0, 0] 1000
    print(add([1, 2], [3, 2, 1]), 12 + 321)          # [3, 3, 3] 333
    print(add([7, 7, 7, 5], [7, 7, 7]), 7775 + 777)  # [8, 5, 5, 2] 8552


if __name__ == '__main__':
    _test()

ddddd:减法、乘法、除法;必须先定义好正数和负数怎么表示,定义好负数后可能加法还得重写。

猜你喜欢

转载自blog.csdn.net/lnotime/article/details/82312573
今日推荐