真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Leetcode-43劃水記錄06大數(shù)乘法

給定兩個以字符串形式表示的非負整數(shù) num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。

示例 1:

輸入: num1 = "2", num2 = "3"
輸出: "6"
示例 2:

輸入: num1 = "123", num2 = "456"
輸出: "56088"
說明:

num1 和 num2 的長度小于110。
num1 和 num2 只包含數(shù)字 0-9。
num1 和 num2 均不以零開頭,除非是數(shù)字 0 本身。
不能使用任何標準庫的大數(shù)類型(比如 BigInteger)或直接將輸入轉(zhuǎn)換為整數(shù)來處理。

我的實現(xiàn)方法是模擬兩個數(shù)乘法的豎式計算,但是速度好像不怎么好

專注于為中小企業(yè)提供成都網(wǎng)站設計、網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)金州免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

string multiply(string num1, string num2) {
    int len1 = (num1).size();
    int len2 = (num2).size();
    string pLong = len1>len2?num1:num2;
    string pShor = len1<=len2?num1:num2;
    map> iRes;
    for (int iXhbl=pShor.size()-1;iXhbl>=0;iXhbl--)
    {
        int iCarry = 0;//進位控制
        string iResult;
        for (int iXhbl2=pLong.size()-1;iXhbl2>=0;iXhbl2--)
        {
            int iSum=0;
            if (iCarry)
            {
                iSum += iCarry;
                iCarry = 0;
            }
            iSum += (pLong[iXhbl2] - '0')*(pShor[iXhbl]-'0');
            if (iSum >= 10)
                iCarry = iSum/10;
            iResult +=( iSum % 10)+'0';
            int djw = (pShor.size()-1- iXhbl) + 1 + (pLong.size() - 1 - iXhbl2);
            iRes[djw].push_back((iSum % 10));
        }
        if (iCarry)
        {
            int djw = (pShor.size() - 1 - iXhbl) + 1 + pLong.size();
            iRes[djw].push_back((iCarry ));
            iResult += iCarry + '0';
        }
    }
    int iCarry = 0;
    string iRest;
    for (int iXhbl=1;iXhbl<=pLong.size()+pShor.size();iXhbl++)
    {
        if (iRes[iXhbl].size() > 0)
        {
            int iSum = 0;
            for (int iXhbl2=0;iXhbl2< iRes[iXhbl].size();iXhbl2++)
            {
                iSum += iRes[iXhbl][iXhbl2];
            }
            if (iCarry)
            {
                iSum += iCarry;
                iCarry = 0;
            }
            if (iSum >= 10)
                iCarry = iSum / 10;

                iRest = iRest + (char)((iSum % 10) + '0');
        }
    }
    if (iCarry)
    {
        iRest = iRest + (char)((iCarry % 10) + '0');
    }
    std::reverse(iRest.begin(), iRest.end());
    //去除多余的0
    int zeroNums=0;
    for (int iXh=0;iXh

當前題目:Leetcode-43劃水記錄06大數(shù)乘法
標題網(wǎng)址:http://weahome.cn/article/ipdips.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部