大数相加,相乘,相除,相减

1.大数相加
class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        s1 = len(num1)
        s2 = len(num2)
        if s1>s2:
            num2='0'*(s1-s2)+num2
        elif s1<s2:
            num1 = '0'*(s2-s1)+num1
        cnt = max(s1,s2)-1
        a = b = 0
        res =""
        while cnt>=0:
            k = int(num1[cnt])+int(num2[cnt])
            b = (k+a)%10 #余数加上进位值
            res= str(b)+res
            a = (k+a)//10 #当前位产生了进位
            cnt-=1
        res =str(a)+res if a!=0 else res
        return res
2.大数相乘
class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        def addStr(n1,n2):
            s1 ,s2 = len(n1),len(n2)
            abs_ = abs(s1-s2)
            if s1>s2: n2 = '0'*abs_+n2
            elif s1<s2: n1 = '0'*abs_ +n1
            cnt = max(s1,s2)-1
            a = b =0
            res =''
            while cnt>=0:
                k = int(n1[cnt])+int(n2[cnt])
                b = (k+a)%10
                res = str(b)+res
                a = (k+a)//10
                cnt-=1
            return str(a)+res if a!=0 else res
        res_pre = ""
        mul_cnt=0
        for i in range(len(num1)-1,-1,-1):#456
            a = b =0
            res =""
            for j in range(len(num2)-1,-1,-1):#123
                s = int(num1[i])*int(num2[j])
                b = (s+a)%10
                res=str(b)+res
                a = (s+a)//10
            res = str(a)+res if a!=0 else res
            res = res+'0'*mul_cnt if res[0]!='0' else '0'
            res_pre = addStr(res,res_pre)
            mul_cnt+=1
        return res_pre

3.大数相减

。。。

4.大数相除

。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值