例:123 * 456 = 123 * 6 + 123 * 50 + 123 * 400
738 + 6150 + 49200
num1[i] 與 num2[j]
所有i+j相同的位置運算在豎式是相同的例如
num[2] 與 num[1] 和 num[1] 與 num[2]
3 * 5 = 15 與 2 * 6 = 12
15 + 12 再加上乙個來自下位的進製就得到這個位置的值
進製值: result[i-1] += result[i] / 10
本位值: result[i] % = 10;
最後計算的資料長度範圍是在num1.size() + num2.size() - 1 到 num1.size() + num2.size()
如果最高進製的資料大於等於10
位數會增長到num1.size() + num2.size()
class
solution
}// num1 * num2
// for(auto c:result) cout << c
size()
+ num2.
size()
-1;for
(int i=end; i>0;
--i)
string res ="";
if(result[0]
>9)
// 處理高位
for(
int i=
0; i
++i) res +
= result[i]
+'0'
;return res;}}
;
字串相乘
定給兩個以字串形式表示的非負整數 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...