zoukankan      html  css  js  c++  java
  • PAT 甲级 1001 A+B Format

    https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400

    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

    代码:
    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e5 + 10;
    char s[maxn], out[maxn];
    int a[maxn];
    
    void zlr_itoa(int x) {
        if(x == 0) {
            s[0] = '0';
            s[1] = 0;
            return ;
        }
        int top = 0;
        while(x) {
            a[top ++] = x % 10;
            x = x / 10;
        }
        int sz = 0;
        while(top != 0) {
            s[sz++] = (char)(a[-- top] + '0');
            s[sz] = 0;
        }
    }
    
    int main() {
        int a, b;
        scanf("%d%d", &a, &b);
        int sum = a + b;
        if(sum == 0) {
            printf("0
    ");
            return 0;
        }
        if(sum < 0) {
            printf("-");
            sum = sum * (-1);
        }
    
        zlr_itoa(sum);
        int len = strlen(s);
    
        if(len < 3) {
            printf("%s
    ", s);
            return 0;
        }
    
        if(len % 3 == 0) {
            for(int i = 0; i < len - 3; i += 3) {
                for(int j = i; j < i + 3; j ++)
                printf("%c", s[j]);
                printf(",");
            }
            printf("%c%c%c", s[len-3], s[len - 2], s[len - 1]);
        }
    
        else if(len % 3 == 1) {
            printf("%c,", s[0]);
            for(int i = 1; i < len - 4; i += 3) {
                for(int j = i; j < i + 3; j ++)
                    printf("%c", s[j]);
                    printf(",");
            }
            printf("%c%c%c", s[len-3], s[len - 2], s[len - 1]);
        }
    
        else if(len % 3 == 2) {
            printf("%c%c,", s[0], s[1]);
            for(int i = 2; i < len - 5; i += 3) {
                for(int j = i; j < i + 3; j ++)
                    printf("%c", s[j]);
                    printf(",");
            }
            printf("%c%c%c", s[len-3], s[len - 2], s[len - 1]);
        }
    
        printf("
    ");
        return 0;
    }
    

      

  • 相关阅读:
    11前端css动画
    10前端css文本和字体
    09前端css3渐变
    08前端css3背景
    07前端css3边框和圆角
    06前端css3增加选择器
    堡垒机Teleport
    Sublime Text 3注册及中文乱码问题解决
    Linux部署KMS激活Windows 10和Office 2016
    服务器维护实施步骤
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9410829.html
Copyright © 2011-2022 走看看