python实现大数相加

该博客介绍了一种算法,用于在不使用int类型的情况下对两个大数进行相加。通过从低位到高位逐位相加,并处理进位,实现了大数相加的功能。代码中,遍历字符串的逆序,对每一位进行运算,并根据进位情况进行处理,最终得到结果并反转回正确的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个大数相加,要求不能使用int类型相加。

思路:两个数据分别取出最后一位,转成int类型相加。代码如下。

def sum_str(a: str = "123", b: str = "9"):
    sum_result = []
    length = max(len(a), len(b))
    is_add = False  # 是否向前进一位
    for index in range(-1, -length - 1, -1):
        x = 0 if index < -len(a) else int(a[index])
        y = 0 if index < -len(b) else int(b[index])
        r = x + y
        if is_add:
            r += 1
        if r <= 9:
            is_add = False
            sum_result.append(r)

        else:
            # 大于10向前进一位
            is_add = True
            sum_result.append(r % 10)
    sum_result.reverse()
    print("".join(str(x) for x in sum_result))


if __name__ == '__main__':
    sum_str()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值