题目内容
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的输出,测试点4就是针对这个的检查
三、具体实现
#include<iostream>
#include<vector>
using namespace std;
int main(){
int a,b,myResult,length;
vector<int> myOut(0);
cin>>a>>b;
myResult = a + b;
/*如果和是负数 就直接改成正数并输出负号*/
if(myResult<0){
myResult = - myResult;
cout<<"-";
}
/*测试点4 是0 0的输入 所以要输出0*/
if(myResult == 0){
cout<<0;
return 0;
}
/*将数字一个个装入向量中*/
while(myResult!=0){
int temp = myResult % 10;
myResult /= 10;
myOut.push_back(temp);
}
length = myOut.size();
for(int i=0;i<length;i++){
cout<<myOut[length-i-1];
/*这么写是为了防止最后数字输出结束了还会再输出一个逗号*/
if((length - i -1)%3 == 0 && (length - i -1)!= 0){
cout<<",";
}
}
return 0;
}
总结
总体来说难度不大,就是要防范数字输出完了结果逗号还在输出(就是数字位数为3的倍数的情况)。