题目来源自PAT网站 https://www.patest.cn/
题目描述:
1001. A+B Format (20)
Calculate a + b andoutput the sum in standard format -- that is, the digits must be separated intogroups of three by commas (unless there are less than four digits).
Input
Each input file containsone test case. Each case contains a pair of integers a and b where -1000000<= a, b <= 1000000. The numbers are separated by a space.
Output
For each test case,you should output the sum of a and b in one line. The sum must be written inthe standard format.
SampleInput
-1000000 9
SampleOutput
-999,991
时间限制 | 400 ms | 内存限制 | 65536 kB | 代码长度限制 | 16000 B |
判题程序 | Standard | 作者 | CHEN, Yue |
题目翻译:
1001.A+B的标准格式
计算a+b,然后以标准格式输出。标准格式是指数字必须被分成三个一组,用逗号分隔(除非少于4个数字)。
输入
每个输入文件包含一个测试实例。每个实例包含一对整数a与b,a与b的范围是:-1000000 <= a, b <= 1000000。数字用空格隔开。
输出
对于每个测试实例,你需要在一行内输出a与b的和。和必须以标准格式输出。
样例输入
-1000000 9
样例输出
-999,991
答案代码:
#include<cstdio>
#include<queue>
#include<stack>
#define QWERTY
using namespace std;
int main()
{
long a,b,sum;
scanf("%ld%ld",&a,&b);
sum=a+b;
long st=sum;
int i=0,c1,c2;
if(st<1000&&st>-1000)
{
printf("%ld\n",st);
return 0;
}
if(st<0)
{
printf("-");
st=-st;
}
stack<int> sta;
while(st>0)
{
i++;
sta.push(st%10);
st=st/10;
}
#ifdef QWERTY
while(!sta.empty())
{
i--;
printf("%d",sta.top());
if(i!=0&&i%3==0)
printf(",");
sta.pop();
}
#endif
printf("\n");
return 0;
}