Calculate a+b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input Specification:
Each input file contains one test case. Each case contains a pair of integers a and b where −106≤a,b≤106. The numbers are separated by a space.
Output Specification:
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
Sample Input:
-1000000 9
Sample Output:
-999,991
思路:
字符串的size()返回值为 unsigned int类型,因此在用其做判断时要注意强制转化 int 型.
CODE:
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
int main() {
ll a, b;
while (cin>>a>>b)
{
ll c;
c = a + b;
char d = ' ';
string temp = to_string(c);
if (temp[0] == '+' || temp[0] == '-') d = temp[0], temp = temp.substr(1);
int i = 0;
while ((int)temp.size() - 3 * (i + 1) - i>0)
{
temp.insert(temp.size() - 3 * (i + 1)- i,",");
i++;
}
d == ' ' ? cout << temp << endl : cout << d << temp << endl;
}
}