給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。
示例 1:
輸入: num1 = "2", num2 = "3"
輸出: "6"
示例 2:
輸入: num1 = "123", num2 = "456"
輸出: "56088"
說明:
num1 和 num2 的長度小于110。
num1 和 num2 只包含數字 0-9。
num1 和 num2 均不以零開頭,除非是數字 0 本身。
不能使用任何標準庫的大數類型(比如 BigInteger)或直接將輸入轉換為整數來處理。
我的實現方法是模擬兩個數乘法的豎式計算,但是速度好像不怎么好
成都創(chuàng)新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的西塞山網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!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<int,vector<int>> 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<iRest.size()-1;iXh++)
{
if (iRest[iXh] == '0')
{
zeroNums++;
}
else
break;
}
iRest.erase(0, zeroNums);
return iRest;
}
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:Leetcode-43劃水記錄06大數乘法-創(chuàng)新互聯
新聞來源:http://bm7419.com/article18/ddjhgp.html
成都網站建設公司_創(chuàng)新互聯,為您提供定制網站、網站維護、企業(yè)網站制作、網頁設計公司、服務器托管、網站收錄
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯