字串相乘

2021-10-23 13:43:46 字數 1400 閱讀 4177

給定兩個以字串形式表示的非負整數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)或直接將輸入轉換為整數來處理。

1.先將每一位相乘的結果相加到各個位,其次在解決進製問題。最後消除從左開始的0(因為可能沒有佔位佔滿)

。然後轉變為字串

2.首先由於可能存在進製所以需要加1,並且每一位是錯位相加

3.從後往前由低位向高位推移,低位除以10來進製,然後取餘賦值給本位

4.排除高位沒有用到的0

5.最後將其轉換為字串,通過和『0』相加

附註:

1.將int數值轉換為字串值,可以將差值加乙個基準值比如『0』或『a』

#include

#include

#include

#include

using

namespace std;

class

myclass

int len1 = num1.

size()

-1;int len2 = num2.

size()

-1;int maxlen = num1.

size()

+ num2.

size()

; string str;

vector<

int>

res(maxlen,0)

;for

(int i = len1; i >=0;

--i)

}for

(int i = maxlen -

1; i >0;

--i)

int i =0;

while

(i < maxlen && res[i]==0

)if(i == maxlen)

for(

; i < res.

size()

;++i)

return str;}}

;void

main()

{ myclass a

; cout

("2"

,"3"

)

("pause"

);

字串相乘

定給兩個以字串形式表示的非負整數 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...