43 字串相乘

2021-10-09 03:34:53 字數 1384 閱讀 2941

題目

方法一:先乘法再加法

按照平時做乘法的思路即可。

這裡比較巧妙的一點是,直接用字元形式做乘法和加法,對於移位問題,就通過填補0來直接處理。自己第一次做的時候就是因為沒有想到這個方法,所以必須轉為整數才能實現。

class

solution

string ans=

"0";

int len1=num1.

length()

,len2=num2.

length()

;for

(int i=len1-

1;i>=

0;i--

)int x=num1.

charat

(i)-

'0';

int carry=0;

for(

int j=len2-

1;j>=

0;j--)if

(carry!=0)

ans=

addstring

(ans,curr.

reverse()

.tostring()

);}return ans;

}private string addstring

(string s1,string s2)

return ans.

reverse()

.tostring();}}

方法二:直接填充直接將計算好的每位乘法寫入所在位。

class

solution

int len1=num1.

length()

,len2=num2.

length()

;int

ans=

newint

[len1+len2]

;for

(int i=len1-

1;i>=

0;i--)}

//處理進製問題

for(

int i=len1+len2-

1;i>

0;i--

)//判斷第一位是否為0

int index=ans[0]

==0?1

:0; stringbuffer res=

newstringbuffer()

;while

(index

return res.

tostring();}}

43 字串相乘

給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...

43 字串相乘

題目描述 給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於1...

43 字串相乘

小聲bb,直接int 多好 既然題目要求不能直接用int 我只好開動我的大腦開始想有什麼解決方案。然後首先想到的就是小學時候老師教乘法時用乘式寫法。1 2 3 4 5 6 1 5 4 9 2 5 5 3 51 2 3 4 5 1 51 0 0 5 0 6 1 5 1 20 8 0 4 0 5 5 3...