1001 A+B Format (20分)
题目
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
题意
输入两个绝对值不大于106的整数,求和,并且按照每三位之前添加一个逗号的格式输出。
分析
求和,输出符号并取绝对值,转化为字符串;取模确定第一个不是三位的输出序列的长度是多少,输出,然后按照格式输出剩下的各位上的数
代码
#include<iostream>
#include<string>
using namespace std;
int main() {
int a, b;
scanf("%d %d", &a, &b);
a += b;
if (a < 0) {
printf("-");
a = -a;
}
string s = to_string(a);
int i = s.size() % 3;
i = i == 0 ? 3 : i;
printf("%s", s.substr(0, i).c_str());
while (i != s.size()) {
printf(",%s", s.substr(i, 3).c_str());
i += 3;
}
return 0;
}