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 −10^6≤a,b≤10^6. 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
Code://参考了柳婼的代码
using namespace std;
int main(int argc, char *argv[]) {
long a, b;
scanf("%ld %ld", &a, &b);
char c[15];
sprintf(c, "%d", a + b);
int len = strlen(c);
for (int i = 0; i < len; i++) {
printf("%c", c[i]);
if (c[i] == '-') continue;//其实只需要排除「-,」这种情况负号就不会影响逗号
if (i % 3 == (len - 1) % 3 && i != len - 1) printf(",");
}//核心是这里的当前位数对3取余和总长度对3取余相等,很好理解
system("pause");
return 0;
}
//我的写法思路简单但写起来复杂
using namespace std;
int main(int argc, char *argv[]) {
long a, b, i = 0;
scanf("%ld %ld", &a, &b);
char c[15];
sprintf(c, "%d", a + b);//!!!
if (c[0] == '-') {
printf("-");
strcpy(c, c + 1);
}
int len1 = strlen(c);
int len2 = len1 % 3;
for (; i < len2; i++)
printf("%c", c[i]);
if (i != len1 && i != 0)
printf(",");
for (; i < len1; i = i + 3) {
for (int j = 0; j < 3; j++)
printf("%c", c[i + j]);
if (i + 3 < len1)
printf(",");
}
system("pause");
return 0;
}