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−10^6≤a,b≤10^6−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
解题思路:
求和之后,将整形转变为 string 类型,再用其长度除 3 ,先输出余数长度的数字,然后每 3 位输出一个逗号,注意末尾无逗号(详见判断条件);
#include <iostream>
#include <sstream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int sum = a + b;
if (sum < 0) {
sum = -sum;
cout << "-";
}
stringstream s;
string num;
s << sum;
s >> num;
int len = num.length();
int temp = len % 3;
for (int i = 0; i < len; i++) {
if ((i == temp || (i-temp) % 3 == 0) && i != 0)
cout << ",";
cout << num[i];
}
}
本文介绍了一种算法,用于计算两个整数的和,并将结果转换为字符串,以便于按照标准格式进行输出。具体步骤包括求和、转换为字符串、按三位分组并插入逗号。

被折叠的 条评论
为什么被折叠?



