美文网首页
1023 Have Fun with Numbers (20 分

1023 Have Fun with Numbers (20 分

作者: zilla | 来源:发表于2019-01-03 02:26 被阅读0次

    踩坑之夜:大整数加法

    1023题目链接

    • 注意'0'与0
    • char[]结尾手动加结束符'\0';
    • 输出开头不带0
    #include <stdio.h>
    #include <string.h>
    int main() {
        char number1[22], number2[22];
        int digit1[10], digit2[10];
        scanf("%s", number1);
        int len = strlen(number1), next = 0;
        for (int j = 0; j < 10; ++j) {
            digit1[j]=0,digit2[j]=0;
        }
        for (int i = len - 1; i >= 0; i--) {
            digit1[number1[i] - '0']++;
            int temp = 2 * (number1[i] - '0');
            number2[i + 1] = '0' + temp % 10 + next;
            digit2[number2[i + 1] - '0']++;
            next = temp / 10;
        }
        number2[0]='0'+next;
        number2[len+1]='\0';
        if (next != 0) {
            puts("No");
            printf("%s\n", number2);
        } else {
            int i = 0;
            while (i<=9&&digit1[i] == digit2[i])i++;
            if (i > 9) {
                puts("Yes");
                printf("%s\n", number2 + 1);
            } else {
                puts("No");
                printf("%s\n", number2 + 1);
            }
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:1023 Have Fun with Numbers (20 分

          本文链接:https://www.haomeiwen.com/subject/gnexrqtx.html