1.题目
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 − 1 0 6 ≤ a , b ≤ 1 0 6 -10^6\leq a,b\leq 10^6 −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.
2.输入输出样例
Sample Input:
-1000000 9
Sample Output:
-999,991
3.题目分析
C语言中int型变量范围在 ± 2 × 1 0 9 \pm2\times10^9 ±2×109之间,题目要求相加减的两个数在整型变量所能表示的范围内。题目要求输出格式,从低位起每三位用逗号隔开。因此可考虑转换为字符型变量循环输出。
4.具体代码
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
string s = to_string(a + b);//to_string是C++11引入新功能,旧版编译器可能不支持
int len = s.length();
for(int i = 0; i < len; i++){
cout<<s[i];
if(s[i] == '-') continue;//符号不算在数字位,因此如果出现负号,执行下一轮循环
if((i+1) % 3 == len % 3 && i != len-1){
cout<<",";
}
}
cout<<endl;
return 0;
}
5.关于string
在C语言中一般采用 char str[]的字符数组的方式来存放字符串,但C++在STL中加入了string类型,对字符串常用功能进行了封装,更为简便。如要使用string,需添加头文件string,string与string.h是不一样的。