1001 A+B Format (20 分)

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 −10​6​​≤a,b≤10​6​​. 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

除以1000得到的 余数不一定是三位,如1032%1000=32,在栈里存的是32,但是实际输出的时候要输出032,所以要用0补齐三位数

#include <bits/stdc++.h>

using namespace std;

int main()
{
    long a, b, sum;
    stack<long>stc;
    cin>>a>>b;
    sum = a+b;
    if(sum == 0)
    {
        cout<<0<<endl;
        return 0;
    }
    if(sum < 0)
    {
        sum *= -1;
        cout<<'-';
    }
    while(sum > 0)
    {
        stc.push(sum % 1000);
        sum /= 1000;
    }
    int flag = 1;
    while(stc.size())
    {
        if(flag == 1)
        {
            cout<<stc.top();
            stc.pop();
            flag = 0;
        }
        else
        {
            printf(",%03ld",stc.top());//用0补齐三位
            stc.pop();
        }
    }
    cout<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Joywss/article/details/82709411