大整數相乘 leetcode 43 字串相乘

2021-09-14 08:13:37 字數 1119 閱讀 1245

有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。

輸入描述:

空格分隔的兩個字串,代表輸入的兩個大整數

輸出描述:

輸入的乘積,用字串表示

示例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 否則的話,將其中乙...