• 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;
    }
    

      

  • 相关阅读:
    MongoDB
    Mac下将Python2.7改为Python3
    Kafka
    Server 基础概念 备忘
    应用内支付
    Sign in with apple
    Linux三剑客grep/sed/awk
    React-Native中使用到的一些JS特性
    Date Picker控件:
    Picker View控件:
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9410829.html
Copyright © 2020-2023  润新知