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
除以1000得到的 余数不一定是三位,如1032%1000=32,在栈里存的是32,但是实际输出的时候要输出032,所以要用0补齐三位数
#include <bits/stdc++.h>
using namespace std;
int main()
{
long a, b, sum;
stack<long>stc;
cin>>a>>b;
sum = a+b;
if(sum == 0)
{
cout<<0<<endl;
return 0;
}
if(sum < 0)
{
sum *= -1;
cout<<'-';
}
while(sum > 0)
{
stc.push(sum % 1000);
sum /= 1000;
}
int flag = 1;
while(stc.size())
{
if(flag == 1)
{
cout<<stc.top();
stc.pop();
flag = 0;
}
else
{
printf(",%03ld",stc.top());//用0补齐三位
stc.pop();
}
}
cout<<endl;
return 0;
}