PAT (Advanced Level) Practice 1001
翻译:
1001 A+B 的格式化
计算 a+b 并用标准格式输出,标准格式是指:数字必须以三个为一组,以逗号分隔。(少于四个数字的情况除外)
输入格式
每个输入文件包含一个测试用例,每个用例包含一对整数a,b,取值范围为: [公式] 两个数字之间用一个空格分隔。
输出格式
对于每个测试样例,输出的和应该占一行,格式按照标准格式书写。
输入样例:
-1000000 9
输出样例:
-999,991
思路:
把两个数的和转换为字符串进行处理,因为负号仍是一个字符,所以正负数需要分开处理。使用string的成员函数insert()处理即可。
代码:
#include <iostream>
#include <string>
using namespace std;
string commas(int sum) {
string str = to_string(sum);
for (int i = str.length() - 3; i > 0; i -= 3) {
str.insert(i,",");
}
return str;
}
int main(){
int a, b;
int sum;
cin >> a >> b;
sum = a + b;
if (sum >= 0) {
cout<<commas(sum);
} else{
cout<<commas(-sum).insert(0,"-");
}
cout << endl;
}