美文网首页
sicily_1000 A-B

sicily_1000 A-B

作者: 我什么都不知道呀 | 来源:发表于2015-10-06 22:40 被阅读128次

    题目

    编程基础题,就是输入两个数A、B然后获得A-B的结果

    代码

    简单版

    // CopyRight (c) HuangJunjie@SYSU(SNO:13331087). All Rights Reserved.
    #include<iostream>
    using std::cin;
    using std::cout;
    
    int main() {
      int a, b;
    
      cin >> a >> b;
      cout << a - b << endl;
    
      return 0;
    }
    
    

    高精度版

    // CopyRight (c) HuangJunjie@SYSU(SNO:13331087). All Rights
    #include<stdio.h>
    #include<string.h>
    
    char* strrev(char* str) {
      char *h = str, *t = str, ch;
      while (*t++) {}
      t -= 2;
      while (h < t) {
        ch = *h;
        *h++ = *t;
        *t-- = ch;
      }
    }
    
    void substruct(char *big, char *small, char* result) {
      for (int i = 0; big[i] || small[i]; i++) {
        if (big[i] < small[i]) {
          big[i] += 10;
          big[i + 1]--;
        }
        if (!small[i]) small[i] += '0';
        result[i] = (big[i] - '0') - (small[i] - '0') + '0';
      }
    }
    
    void Printf(char *c) {
      int i = 0;
      while (c[i++] == '0') {}
      if (!c[i]) printf("0");
      printf("%s", c + i - 1);
      printf("\n");
    }
    
    int main() {
      char a[100 + 1] = { 0 }, b[100 + 1] = { 0 }, c[100 + 1] = { 0 };
      scanf("%s", a);
      scanf("%s", b);
      strrev(a);
      strrev(b);
      if (strlen(a) < strlen(b)) {
        substruct(b, a, c);
        printf("-");
      } else if (strlen(a) > strlen(b)) {
        substruct(a, b, c);
      } else {
        for (int i = strlen(a) - 1; i >= 0; i--) {
          if (a[i] == b[i]) {
            if (i) {
              continue;
            } else {
              c[i] += '0';
            }
          } else if (a[i] > b[i]) {
            substruct(a, b, c);
            break;
          } else if (a[i] < b[i]) {
            substruct(b, a, c);
            printf("-");
            break;
          }
        }
      }
      strrev(c);
      Printf(c);
      return 0;
    }
    

    相关文章

      网友评论

          本文标题:sicily_1000 A-B

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