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
题目大意就是 把2个数的和转换为标准和 如 1000 转换为 1,000 99999 转换为 99,999
-1000000 转换为 -1,000,000 如果长度小于4就不转换 数的范围限定了 不会超过正负10万。
commas 逗号 separated into groups 分组
#include<iostream>
#include<sstream>
using namespace std;
int main(){
int num1,num2,seq;
// 判断是否为负数
bool flag = false;
cin>>num1>>num2;
seq = num1 + num2;
// 如果为负数 先变为正数
if(seq < 0){
seq *= -1;
flag = true;
}
// 数字转字符串
stringstream ss;
ss<<seq;
string str = ss.str();
// 长度大于3时 倒数第一个逗号插入位置
int lenDet = str.length() - 3;
// 如果长度大于3 则需要插入一个逗号
if(lenDet > 0){
str.insert(lenDet,",");
// 如果字符串长度大于 6 则还需要在第二个位置插入一个逗号
if(lenDet > 3)
str.insert(1,",");
}
// 如果为负数 插入负号
if(flag)
str.insert(0,"-");
cout<<str<<endl;
return 0;
}
提交截图: