# PAT 1001. A+B Format (20)（字符串转换）

### 题目

``````1001. A+B Format (20)

400 ms

65536 kB

16000 B

Standard

CHEN, Yue
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

Each input file contains one 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 in the standard format.

Sample Input
-1000000 9
Sample Output
-999,991

### 解题思路

• 1.先将和转话为字符串，然后利用`stack`从后往前加上`，`，最后在从堆顶依次输出。

### AC代码

``````#include<cstdio>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<stack>
using namespace std;

int main(int argc, char *argv[])
{
ios_base::sync_with_stdio(false);
int a,b,sum;
cin >> a >> b;
sum = a + b;
if (sum<0) {
//printf("-");
cout<<"-";
}
//将和转化为字符串
sum = abs(sum);
string str;
stringstream ss;
ss << sum;
ss >> str;
int len =str.length();
//利用stack加入，
stack<char> keep;
int cnt = 0;
while (len--) {
cnt++;
keep.push(str[len]);
if (cnt%3==0) {
keep.push(',');
}
}
//依次输出
char out = keep.top();
if (out==',') {
keep.pop();
}
while (!keep.empty()) {
char out = keep.top();
cout << out;
keep.pop();
}
cout << endl;
return 0;
}
``````

• 本文已收录于以下专栏：

## PAT甲级 1001. A+B Format (20)--两种方法

• qq_27474589
• 2017年08月01日 08:17
• 336

## Java - PAT - 1001. A+B Format (20)

Calculate a + b and output the sum in standard format -- that is, the digits must be separated into ...
• qq_34594236
• 2016年06月21日 22:24
• 470

## 【c++】PAT (Advanced Level) 1001. A+B Format (20)

1001. A+B Format (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE...
• artemisrj
• 2014年02月21日 19:01
• 808

## 【PAT】1001. A+B Format

PAT1001 此题花费了很长时间，做了几次都是说超时，网上找了个答案找到毛病，while(true)是绝对不能用的，while(cin>>a>>b)可以用。 #include #include ...
• dongfengkuayue
• 2014年03月13日 20:13
• 3549

## 1001. A+B Format (20)(PAT)

A+B Format (20) Calculate a + b and output the sum in standard format – that is, the digits must be ...
• FEATHER2016
• 2017年11月14日 18:24
• 77

## 【PAT】 1001. A+B Format (20)

• wwk0125
• 2015年12月20日 22:08
• 279

## ( PAT )1001. A+B Format (20)

#include #include int main() { int a; int b; char flag; int remaining; int index=0; char s...
• MrRoyLee
• 2014年01月07日 19:08
• 662

## PAT: 1001. A+B Format (20)

• lcxlxm
• 2016年06月14日 18:09
• 129

## PAT (Advanced Level) 1001. A+B Format (20) 解题报告

1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B ...
• qq_21899803
• 2017年01月24日 14:34
• 139

## PAT 1001. A+B Format (20)

1001. A+B Format (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者...
• u010069101
• 2014年02月23日 10:48
• 473

举报原因： 您举报文章：PAT 1001. A+B Format (20)（字符串转换） 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)