題目引自:
43. 字串相乘
給定兩個以字串形式表示的非負整數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)或直接將輸入轉換為整數來處理。
class solution
string result;
for (int i=num2.size()-1; i>=0; --i)
if (carry != 0) sum_cur.insert(0, 1, char(carry+'0'));
//將兩個字串相加
int a=result.size()-1;
int b=sum_cur.size()-1;
carry = 0;
while (a >=0 || b >=0)
if (b >= 0)
r = r + s + carry;
carry = r / 10;
r = r % 10;
if (a>=0)
result[a] = char(r + '0');
else
result.insert(0, 1, char(r+'0'));
a--;
b--;
}if (carry != 0) result.insert(0, 1, char(carry+'0'));
}return result;
}};
執行結果:
通過顯示詳情
執行用時 :52 ms, 在所有 c++ 提交中擊敗了18.18%的使用者
記憶體消耗 :8.1 mb, 在所有 c++ 提交中擊敗了100.00%的使用者
(耗時太長了,還需要努力)
字串相乘
定給兩個以字串形式表示的非負整數 num1狀語從句 num2,報道檢視 num1狀語從句 num2的乘積,它們的乘積也表示為字串形式。示例1 輸入 num1 2 num2 3 輸出 6 示例2 輸入 num1 123 num2 456 輸出 56088 說明 num1狀語從句 num2的長度小於11...
字串相乘
給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。思路 經過學習,大致思路有兩種 第一種思路為進行每一位相乘運算時,同時處理進製,以每一位保持小於等於 9 大於等於 0 的數儲存到char陣列中。第二種思路為先進行每一位的相乘運算,儲存到c...
字串相乘
給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...