PTA甲级——1001

1001 A+B Format

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 −10^6≤a,b≤10^6. 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:

1
-1000000 9

Sample Output:

1
-999,991

思路

​ 这道题目的大致题意是:给出a,b两个数,将这两个数相加,然后从右向左,每隔3个数就写一个逗号,同时对于数字部分的最前面的一个位置是没有逗号的,比如说案例的-999,991,数字部分的最前面的9是第6位,但是前面是不用填写逗号的。

​ 然后这道题目其实只需要注意一下特殊判定就ok了。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int a, b;
cin >>a >>b;
int c = a + b;
string s = to_string(c);
int len = s.length();
reverse(s.begin(), s.end());

string ss = "";
for (int i = 0; i < len; i++) {
ss.push_back(s[i]);
if (i % 3 == 2 && s[i] != '-' && i != len - 1 && i != 0 && s[i + 1] != '-') ss.push_back(',');
}
reverse(ss.begin(), ss.end());
cout <<ss << '\n';
return 0;
}