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.
intmain(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"); return0; } //我的写法思路简单但写起来复杂 #pragmawarning(disable: 4996) #include<cstdio> #include<cstdlib> #include<cstring>
usingnamespacestd;
intmain(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(","); }