1、描述
大数相加
3、思路
使用一个变量power=0来初始化进位。
从后往前累加。如果长度不齐,就添0,
4、notes
// c++默认从char—>int 是c - ‘0’ 实现字符c从字符变成 整数int
// int —> char int num = 7 , auto elem = num + ‘0’ elem类型是char
另外一个二进制加法练习题,一样的思路
6、code
class Solution {
public:
// c++默认从char--->int 是c - '0' 实现字符c从字符变成 整数int
// int ---> char int num = 7 , auto elem = num + '0' elem类型是char
string addStrings(string num1, string num2) {
int i = num1.size() - 1;
int j = num2.size() - 1;
int power = 0;
string res = "";
while(i >=0 || j >=0 || power > 0){
int x = (i >= 0) ? (num1[i] - '0') : 0; // 这里只能num1[i] - '0' 而不能 +'0'
int y = (j >= 0) ? (num2[j] - '0') : 0;
int tem = x + y + power;
power = tem / 10;
int ele = tem % 10;
//res.push_back(ele + '0'); // ele + '0' 只能+ ‘0’ // 这一行和下一行一样。
res += ele + '0';
i -= 1;
j -= 1;
}
reverse(res.begin(),res.end());
return res;
}
};