题解 | 大整数相乘

大整数相乘

https://www.nowcoder.com/practice/0f0badf5f2204a6bb968b0955a82779e

import sys

def multiply(num1:str,num2:str):
    # 判别0
    if num1=='0' or num2=='0':
        return '0'
    
    m, n = len(num1), len(num2)
    res = [0]*(m+n)# 初始化一个全零数组用来存储

    for i in range(m-1, -1, -1):
        for j in range(n-1,-1, -1):
            mul = (ord(num1[i])-ord('0')) * (ord(num2[j])-ord('0'))
            
            p1 = i + j + 1
            p2 = i + j

            total = mul+res[p1]
            res[p1]=total%10
            res[p2] += total//10
    
    start = 0
    while start<len(res) and res[start]==0:
        start+=1
    return ''.join(map(str,res[start:]))


def main():
    num1, num2 = sys.stdin.readline().strip().split()
    print(multiply(num1, num2))


if __name__ == "__main__":
    main()

全部评论

相关推荐

03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务