[PAT甲级] Practise 1001 A+B Format

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;
}
原文地址:https://www.cnblogs.com/eisuto/p/12409684.html