题目就不贴了,解题主要思路:
1.直接计算a+b的值
2.利用sprintf格式化输入结果到数组中,最后逆序输出
#include <iostream>
#include <sstream>
#include <cstring>
#include <string>
#include <stack>
#define MAX_NUM 15
using namespace std;
char ans[MAX_NUM];
int main(void)
{
string line;
int a, b, sum, j, flag;
/*redirect the input file and output file*/
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
while(getline(cin, line))
{
stringstream ss(line);
ss >> a;
ss >> b;
sum = a + b;
j = 0;
flag = 0;
memset(ans, 0, sizeof(char) * MAX_NUM);
if(sum == 0)
{
cout << sum << "\n";
continue;
}
if(sum < 0)
{
sum = -sum;
flag = 1;
}
for(int i = 0; sum > 0;i++)
{
if((i % 3 == 0) && (i != 0))
{
*(ans + j) = ',';
j++;
}
j += sprintf(ans + j, "%d", sum % 10);
sum = sum / 10;
}
if(flag == 1)
{
*(ans + j) = '-';
j++;
}
/*output*/
for(int i = j - 1; i >= 0; i--)
{
cout << ans[i];
}
cout << "\n";
}
return 0;
}