美文网首页
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