題目
方法一:先乘法再加法
按照平時做乘法的思路即可。
這裡比較巧妙的一點是,直接用字元形式做乘法和加法,對於移位問題,就通過填補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...