LintCode 656. Big Integer multiplication

原題

LintCode 656. Big Integer multiplication

Description

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2

Example

  • The length of both num1 and num2 is < 110.
  • Both num1 and num2 contains only digits 0-9.
  • Both num1 and num2 does not contain any leading zero.
  • You must not use any built-in BigInteger library or convert the inputs to integer directly.

解題

高精度乘法

代碼

class Solution {
public:
    /*
    * @param num1: a non-negative integers
    * @param num2: a non-negative integers
    * @return: return product of num1 and num2
    */
    string multiply(string &num1, string &num2) {
        // write your code here
        if (num1 == "0" || num2 == "0") return "0";
        int n = num1.size() + num2.size();
        int *res = new int[n];
        for (int i = 0; i < n; i++) res[i] = 0;
        if (num1.length() < num2.length()) swap(num1, num2);
        for (int i = num1.size() - 1; i >= 0; i--) {
            for (int j = num2.size() - 1; j >= 0; j--) {
                res[i + j + 1] += (num1[i] - '0') * (num2[j] - '0');
            }
        }
        for (int i = n - 1; i > 0; i--) {
            res[i - 1] += res[i] / 10;
            res[i] %= 10;
        }
        string ans;
        for (int i = 0; i < n; i++) {
            if (res[i] == 0 && ans.empty()) continue;
            ans += char(res[i] + '0');
        }
        return ans;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛔翅,一起剝皮案震驚了整個濱河市恼布,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搁宾,老刑警劉巖折汞,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盖腿,居然都是意外死亡爽待,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門翩腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸟款,“玉大人,你說我怎么就攤上這事茂卦『问玻” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵等龙,是天一觀的道長处渣。 經(jīng)常有香客問我,道長蛛砰,這世上最難降的妖魔是什么罐栈? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮泥畅,結(jié)果婚禮上荠诬,老公的妹妹穿的比我還像新娘。我一直安慰自己位仁,他們只是感情好柑贞,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聂抢,像睡著了一般钧嘶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涛浙,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天康辑,我揣著相機與錄音,去河邊找鬼轿亮。 笑死疮薇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的我注。 我是一名探鬼主播按咒,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼但骨!你這毒婦竟也來了励七?” 一聲冷哼從身側(cè)響起智袭,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掠抬,沒想到半個月后吼野,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡两波,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年瞳步,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腰奋。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡单起,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劣坊,到底是詐尸還是另有隱情嘀倒,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布局冰,位于F島的核電站测蘑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锐想。R本人自食惡果不足惜帮寻,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赠摇。 院中可真熱鬧,春花似錦浅蚪、人聲如沸藕帜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洽故。三九已至缓艳,卻和暖如春迂曲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乞而。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工哈踱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荒适,地道東北人。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓开镣,卻偏偏與公主長得像刀诬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邪财,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的閱讀 13,490評論 5 6
  • 常青的藤蔓在不知不覺中枯萎了陕壹,只留下衰敗的身子质欲;老樹靜默地站著,仿佛看淡了這世間紅塵糠馆;黃昏了嘶伟,將要回巢的烏...
    0429鈺薇閱讀 376評論 1 2
  • 你知道比死更艱難的是什么?是饒恕又碌。因為忍受長時間的痛苦后才能饒司琶痢!——電影《不可饒恕》
    安婼藍兒閱讀 156評論 0 1
  • “今天是2015年最后一天赠橙,你有什么要對我說的嗎耽装?嚴肅一點∑诰荆” “我們在一起也大半年了掉奄,認識你真好!”
    淺云兮閱讀 105評論 0 0