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
思路:
1.两数相加后判断正负,先将负号输出
2.使用stack把数字的每一位以char存储,每第四位存为','
ac代码:
#include<iostream>
#include<stack>
using namespace std;
stack<char> res;
int toChar(int c){
for(int i=0;i<10;i++){
if((i+1)%4==0){
res.push(',');
continue;
}
if(c<10){
res.push('0'+c);
break;
}
res.push('0'+c%10);
c/=10;
}
}
int main(){
int a,b;
cin>>a>>b;
a=a+b;
if(a<0){
cout<<"-";
a*=-1;
}
toChar(a);
a=res.size();
for(int i=0;i<a;i++){
cout<<res.top();
res.pop();
}
}