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
思路
首先看范围,用int足够。
然后简单相加,没什么可说的。
最后将数字转换为字符数组,依次输出字符,到一定位置输出“,”
核心代码
int r=a+b;//整数型的结果
string res;//string变量
stringstream ss;//string流
ss<<r;
ss>>res;
int len=res.length();
char num[len];
res.copy(num,len);//将res的len长度部分赋值给num字符数组
代码
#include<stdio.h>
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int r=a+b;
string res;
stringstream ss;
ss<<r;
ss>>res;
int len=res.length();
char num[len];
res.copy(num,len);
int st=0;
int flag=0;
if(r<0){
st=1;
flag=2;
cout<<"-";
}
int count=0;
for(int i=st;i<len;i++){
cout<<num[i];
count=count+1;
if((len-count+flag)%3==0&&i!=len-1){
cout<<",";
}
}
return 0;
}