題目描述2:
注意事項:
給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和。
示例:輸入
string s1 = 「12」 string s2 = 「28」
輸出string s3 = 「40」
這個題最容易想到的做法就是將字串直接轉換成數字進行相加,然後將相加和轉為字串返回,但是兩個字串直接轉為數字是很容易溢位的,所以這個簡單的方法不可行,我們要在字串的基礎上一位一位的進行相加,需要注意的點就是兩個0-9的數字相加後可能會有進製位,需要記錄下來。
計算兩個非負整數字串的相乘,並返回這個字串string addstrings
(string num1, string num2)
else
if(n >=0)
else
if(m >=0)
else
}/字串逆置,可以直接用reverse(s.begin(),s.end())
for(
int i =
0;isize()
/2;i++
)return s;
}
示例:輸入
string s1 = 「100」 string s2 = 「2」
輸出string s3 = 「200」
注:s1 s2的長度不會超過110
這個題與字串相加一樣,不能直接轉換成數字進行操作,因為會溢位。結合我們平時做乘法的規律,我們是拿乘數的每一位與被乘數相乘,然後再給相應的後面加0,把這幾個數加起來就得到了乘積。例如,123x12,先計算1232 = 246,再計算1231 = 123,在123後面加乙個0為1230,最後1230+246 = 1476
每一位與num1相乘
字串相加string multi
(string num1,
int val)
if(ans !=0)
reverse
(s.begin()
,s.end()
);return s;
}
兩個字串相乘string addstrings
(string num1, string num2)
else
if(n >=0)
else
if(m >=0)
else
}for
(int i =
0;isize()
/2;i++
)return s;
}
字串的加減乘除操作一定要小心溢位的情況,不能盲目轉換string multiply
(string num1, string num2)
else
}for
(int i=
0;i < num2.
size()
;i++)}
int k = num2.
size()
-1;int h = num2.
size()
;while
(k--)}
return s[0]
;}
leetcode 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。思路 假設兩個...
leetcode 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式 415 字串相...
LeetCode 415 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。利用字元流,將...