1001 A+B Format
分数 20
作者 CHEN, Yue
单位 浙江大学
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
要注意和为0的时候要进行特判,要注意分解之后输出的时候除了第一个数,后面的其他数都要进行三位输出,不足三位的用0补齐;
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
a += b;
vector<int> res;
//先以1000为进制,将和进行分解,最后在逆序处理;
while(a)
{
res.push_back(a % 1000);
a /= 1000;
}
//注意和为0的时候要特判
if(res.size() == 0)
puts("0");
int flag = 1;
for(auto it = res.rbegin() ; it != res.rend() ; ++it)
{
if(flag)
{
flag = 0;
cout << *it;
}
else
{
cout << ',';
//后面的数字要输出三位数字,不足三位的用0补齐
printf("%03d", abs(*it) );
}
}
return 0;
}