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
题面要求输入两个整数a,b(大小为−106≤a,b≤106),格式化输出一个整数,要求从右到左每隔三位加一个','
AC CODE:
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string> #include<vector> #include<stack> #include<bitset> #include<cstdlib> #include<cmath> #include<set> #include<list> #include<deque> #include<map> #include<queue> #include<cstring> using namespace std; typedef long long ll; const double PI = acos(-1.0); const double eps = 1e-6; const int INF = 0x3f3f3f3f; #define MAXN 250005 #define MAXSIZE 10 #define DLEN 4 #define mod 1000000007 const int MOD = 1e9+7; int main(){ int a,b; scanf("%d%d",&a,&b); int c=a+b; if(c>=1000||c<=-1000){//如果在1000~-1000则不用进行任何操作 int flag=(c>0)?1:(c=-c,0);//flag记录运算结果的正负,并取计算结果绝对值 char cc[10]={'0'};//运算结果保存为字符型 int i=0; while(c!=0){ cc[i++]=(char)(c%10+48);//取最左边一位(字符‘0’ascii码为48) c/=10; if(i==3&&c!=0)cc[i++]=','; if(i==7&&c!=0)cc[i++]=','; } i--; if(flag){ for(;i>=0;i--) printf("%c",cc[i]); }else{ printf("-"); for(;i>=0;i--) printf("%c",cc[i]); } }else{ printf("%d\n",c); } return 0; }