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
问题简单,有几个小坑注意下就可以了。
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
char a[10];
int ans = n+m,s=0,l=0,flag=0;
if(ans<0) //如果小于零,标记,后面输出负号
flag = 1;
ans = abs(ans);
if(!ans)
printf("%d\n",ans);
else{
while(ans){
a[l++]=ans%10+'0';
s++;
ans/=10;
if(s==3 && ans){ //每有3个数且前面还有数的时候添加逗号
s=0;
a[l++] = ',';
}
}
if(flag)
a[l]='-';
else
l--;
for(int i=l; i>=0; i--)
printf("%c",a[i]);
printf("\n");
}
}
return 0;
}