有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。
輸入描述:
空格分隔的兩個字串,代表輸入的兩個大整數
輸出描述:
輸入的乘積,用字串表示
示例1
輸入
72106547548473106236 982161082972751393
輸出70820244829634538040848656466105986748
方法就是和我們手工做乘法相同,只是這裡不處理進製,最後統一處理。從上面的可以看出。
兩數相乘,結果最多有n1+n2位。
再相乘的過程中,兩個數所有位分別相乘,儲存在第 i+j 位,這裡為了方便處理,將其倒轉過來儲存,低位儲存在前,高位儲存在後。
#include
#include
#include
using
namespace std;
string fun
(const string &str1,
const string &str2)
int u=n1+n2-1;
while
(temp[u]==0
)//將頭部的零去掉
u--; string res;
for(
int i=u;i>=
0;i--
)//再拼接為字串
res+
=temp[i]
+'0'
;return res;
}int
main()
另外,leetcode43的做法:
class
solution
//最後還有乙個進製沒有處理,加到第i位
res[i]
+=add;
}for
(int i=
0;i++i)
return
"0";}}
;
LeetCode43 兩數相乘
給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1和num2的長度小於110。num1和num2只包含...
大數相乘 LeetCode43 字串相乘
題目 給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110...
LeetCode43 字串相乘
給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 題目分析 如果兩個字串中有乙個為0,則結果是0 否則的話,將其中乙...