python大数相乘

本文介绍如何使用Python进行大数的乘法运算,探讨Python内置的数学库以及大整数操作的高效方法,帮助理解Python在处理大数据时的优越性。

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

python大数相乘,时间复杂度O(n^2)
1、把数据扔到list里然后逆转,list顺序0~n对应个位、十位...
2、创建存储结果list,长度默认为两个被乘数长度之和
3、按位相乘,相同竖线位置累加
4、结果list从0位开始遍历,如果大于9进位
5、结果逆序
def mul(n1,n2):
    n1.reverse()
    n2.reverse()
    n3=[]
    print n1,n2
    for i0 in xrange(len(n1)+len(n2)):
        n3.append(0)
    for i1 in xrange(len(n1)):
        for i2 in xrange(len(n2)):
            n3[i1+i2] += n1[i1]*n2[i2]
    for i3 in xrange(len(n3)):
        if(n3[i3]>9):
            n3[i3+1] += n3[i3]/10
            n3[i3] = n3[i3]%10
    n3.reverse()
    return n3
print mul([2,4,5,6,6],[4,5,2,0,5,3])
#[2,4,5,6,6]*[4,5,2,0,5,3]=[1, 1, 1, 0, 5, 1, 3, 3, 9, 9, 8]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值