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
作者: CHEN, Yue
单位:浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
#include <stdio.h>
#include <string.h>
void format_input(int num);
int main()
{
int x;
int y;
scanf("%d %d", &x, &y);
int sum = x + y;
format_input(sum);
return 0;
}
void format_input(int num)
{
if (num < 0) {
printf("-");
num = -num;
}
char number[20];
for (int i = 0; i < 20; i++) {
number[i] = '\0';
}
sprintf(number, "%d", num);
int len = strlen(number);
if (len <= 3) {
printf("%s\n", number);
}
else {
int insert_number = 0;
int tmp_len = len;
while (tmp_len > 3) {
int after_number = 3 * (insert_number + 1) + insert_number;
int position = len + insert_number;
for (int i = 0; i < after_number; i++, position--) {
number[position] = number[position - 1];
}
number[position] = ',';
tmp_len -= 3;
insert_number++;
}
printf("%s\n", number);
}
}