zoukankan      html  css  js  c++  java
  • 大整数加法

    写程序求两个相同位数的大整数之和

    输入

    两个大整数(位数不超过1000)

    输出

    两个大整数的和

    样例输入

    1234567890 1234567890
    111111111111 222222222222
    

    样例输出

    2469135780
    333333333333
    #include <stdio.h>
    #include <string.h>
    char add(char a, int &tag){
    int r = a-'0'+tag;
    if (r <= 9){
       tag = 0;
       return r+'0';
    }
    else{
       tag = 1;
       return r+38;
    }
    }
    char add(char a, char b, int &tag){
    int r = a+b-96+tag;
    if (r <= 9){
       tag = 0;
       return r+'0';
    }
    else{
       tag = 1;
       return r+38;
    }
    }
    int add(char sum[], char a[], char b[]){
    int i = strlen(a)-1, j = strlen(b)-1, k = 0, tag = 0;
    while (i>=0 && j>=0){
       sum[k++] = add(a[i--], b[j--], tag);
    }
    while (i >= 0){
       sum[k++] = add(a[i--], tag);
    }
    while (j >= 0){
       sum[k++] = add(b[j--], tag);
    }
    if (tag != 0){
       sum[k++] = tag+'0';
    }
    return k;
    }
    int main(){
    char a[1001], b[1001], sum[1002];
    int i, k;
    while (scanf("%s %s", a, b) == 2){
       k = add(sum, a, b);
       for (i=k-1; i>=0; --i){
        printf("%c", sum[i]);
       }
       printf("
    ");
    }
    return 0;
    }
  • 相关阅读:
    Poj3126
    Poj1426
    2806 红与黑
    3100 蜗牛
    1225 八数码难题
    2549 自然数和分解
    2547 东方辉针城
    2928 你缺什么
    1629 01迷宫
    1029 遍历问题
  • 原文地址:https://www.cnblogs.com/Lazy-Cat/p/9838281.html
Copyright © 2011-2022 走看看