蓝桥杯练习题 —— 高精度加法(python)

文章介绍了如何使用Python编写一个函数,接收用户输入的大整数字符串,通过逐位相加并处理进位的方式计算它们的和,展示了map(),input(),strip(),list()和字符串转换等函数的运用。
摘要由CSDN通过智能技术生成

python优势

# encoding = utf-8
# 开发者:xxx
# 开发时间: 16:48 
# "Stay hungry,stay foolish."

a = int(input())
b = int(input())

print(a + b)

正常

# encoding = utf-8
# 开发者:xxx
# 开发时间: 16:48 
# "Stay hungry,stay foolish."

def add_large_numbers(a, b):
    # 获取两数据的长度
    len_a, len_b = len(a), len(b)

    # 补齐长度,使两个数组长度相等
    if len_a < len_b:
        a = [0] * (len_b - len_a) + a
    else:
        b = [0] * (len_a - len_b) + b

    result = []
    carry = 0  # 进位

    # 逐位相加
    for i in range(len(a) - 1, -1, -1):
        digit_sum = a[i] + b[i] + carry
        carry = digit_sum // 10
        result.insert(0, digit_sum % 10)
        # insert(0, ...) 操作可以在 result 的最前面插入新的数字

    # 处理最高位的进位
    if carry:
        result.insert(0, carry)

    return result

# 输入两个大整数的数组表示
a = list(map(int, input().strip()))
b = list(map(int, input().strip()))

# 计算两个大整数的和
result = add_large_numbers(a, b)

# 输出结果
print(''.join(map(str, result)))

所用方法

list(map(int, input().strip()))

这段代码实现了从用户输入获取一个字符串,然后将该字符串中的每个字符转换为整数,并将结果存储在一个列表中。让我逐步解释:

  1. input(): 这个函数用于从用户获取输入。程序会暂停运行,直到用户输入内容并按下回车键。用户输入的内容被作为字符串返回。

  2. input().strip(): strip() 方法用于去除字符串两端的空白字符(空格、制表符、换行符等)。这是为了确保用户输入的内容不包含任何额外的空白。

  3. map(int, input().strip()): 这一部分利用了 map() 函数,将 int() 函数应用于输入的字符串中的每个字符。这样做的效果是将字符串中的每个字符转换为整数。

  4. list(...): 将 map() 函数返回的结果转换为列表。这样做的目的是将整数转换后的结果存储在列表中,以便后续使用。

综合起来,这段代码的作用是获取用户输入的字符串,然后将该字符串中的每个字符转换为整数,并将结果存储在一个列表中。

print(''.join(map(str, result)))

这段代码的作用是将一个列表(或其他可迭代对象)中的元素转换为字符串,并以空字符串连接起来,然后将结果打印出来。让我逐步解释:

  1. map(str, result): 这一部分利用了 map() 函数,将 str 函数应用于列表 result 中的每个元素,将其转换为字符串。

  2. ''.join(...): 这是字符串对象的 join() 方法,它接受一个可迭代对象作为参数,并将其元素连接成一个字符串。在这里,空字符串 '' 被用作连接符,这意味着列表中的元素将直接连接在一起,没有任何额外的字符。

  3. print(...): 最后,print() 函数用于将连接后的字符串打印到控制台。

综合起来,这段代码的作用是将列表 result 中的元素转换为字符串,并将它们连接成一个字符串,然后打印出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值