问题:给定A、B(-106<=A、B<=106),计算A+B,并且将结果按指定形式输出。要求的格式是从后往前每三位加一个逗号,以符合西方的数字格式。
输入范例:-1000000、9
输出:-999,991
解决方案:首先读入A、B,然后计算A和B的和,再将二者的和转换成string类型,最后从后往前每三位(用到了string类的函数length())加一个逗号输出即可,唯一需要注意的就是计算结果为负数的情况,这时不能把负号看作是一位。
C++代码:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 int main() { 6 int a, b, c; 7 string ch; 8 cin >> a >> b; //读入A、B 9 c = a + b; //计算结果 10 ch = std::to_string(c); //使用to_string()函数将int型变量转变成string类型 11 if (c / 1000 == 0) 12 cout << c << endl; //计算结果小于四位,直接输出 13 else { 14 ch.insert(ch.length() - 3, ","); 15 if(ch.length() > 7 && c > 0 || ch.length() > 8) //考虑到负号,这里需要分正负两种情况 16 ch.insert(ch.length() - 7, ","); 17 cout << ch << endl; //输出结果 18 } 19 return 0; 20 }
原文:https://www.cnblogs.com/TonyMD/p/14623372.html