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

传送门

https://www.patest.cn/contests/pat-a-practise/1001

题目

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

分析

我可能用的方法比较麻烦,但是简单粗暴,比较好想,就是先将结果转化成字符串,然后从末尾压栈,压满三个数就压进一个逗号,需要注意的是,如果首位数字是第三位,则不压入逗号

源代码

//C/C++实现
#include <iostream>
#include <sstream>
#include <stack>

using namespace std;

int main(){
    int a, b, sum;
    scanf("%d %d", &a, &b);
    sum = a + b;
    stringstream ss;
    string result;
    ss << sum;
    ss >> result;
    stack<char> s;
    if(sum < 0){ // minus
        int count = 0;
        for(int i = result.size() - 1; i >= 1; --i){
            ++count;
            s.push(result[i]);
            if(count == 3){
                count = 0;
                if(i != 1){
                    s.push(',');
                }
            }
        }
        s.push('-');
    }
    else{
        int count = 0;
        for(int i = result.size() - 1; i >= 0; --i){
            ++count;
            s.push(result[i]);
            if(count == 3){
                count = 0;
                if(i != 0){
                    s.push(',');
                }
            }
        }
    }
    while(!s.empty()){
        printf("%c", s.top());
        s.pop();
    }
    printf("\n");
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 许久不曾回忆起的东西,最近总是在梦里一次又一次出现。那是家逢巨变,母亲反反复复的病情死死地勒住我们那个普通的家庭,...
    菇凉家的帅熊熊阅读 1,365评论 0 0
  • 现实的状况是,越来越多的姑娘抱怨,老公人在家,除了手机,心似乎没带来,无论自己说什么,他都像没听见。 我想,是不是...
    我看围城阅读 2,880评论 0 0
  • 喜欢阅读的人基本上都听过这本书,可是听过的,有多少人能够完完整整的读下来呢?读下来的又有多少人掌握了其中的读书方法...
    何羡鱼阅读 5,464评论 2 13