直接拿走用就行
对程序做一些解释。
首先字符类型是以数字在在计算机存储。即字符的ASCII码
char c= '1'+'2';这样可以吗?显然不行。因为1的ASCII码+2才是3。所以应当这样修改
char c ='1'+'2'-'0';
//当然也可以写成这种形式
char c = '1'+2;
大于9的字符为什么要减10,而不是’10’;
原因也是ASCII码,‘11’-10是拿11的ASCII码减去10,然后找到相应的字符就是’1’
所以记住一点,字符运算实际上是ASCII码参与运算,再进行相应的加减操作。
string add(string s1, string s2)
{
if (s1 == "" && s2 == "") return "0";
if (s1 == "") return s2;
if (s2 == "") return s1;
string maxx = s1, minn = s2;
if (s1.size() < s2.size()){
maxx = s2;
minn = s1;
}
int a = maxx.size() - 1, b = minn.size() - 1;
for (int i = b; i >= 0; --i){
maxx[a--] += minn[i] - '0'; // char c='1'+('4'-'0');
}
for (int i = maxx.size()-1; i > 0;--i){
if (maxx[i] > '9'){
maxx[i] -= 10;// 注意是减10
maxx[i - 1]++;
}
}
if (maxx[0] > '9'){
maxx[0] -= 10;
maxx = '1' + maxx;
}
return maxx;
}