• openjudge计算概论-大整数加法


    /*=====================================================================
    1004:大整数加法
    总时间限制: 1000ms 内存限制: 65536kB
    描述
    求两个不超过200位的非负整数的和。

    输入
    有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
    输出
    一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
    样例输入
    22222222222222222222
    33333333333333333333
    样例输出
    55555555555555555555

    解析:要注意输入的两个数都是0的情况需要特殊处理输出结果的过程。
    =======================================================================*/

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char a[203],b[203],c[203];
        int lenA,lenB,min,max,i,j,k;
        int ai,bi,ci;
        bool f=true;
        freopen("add.in","r",stdin);
        //freopen("add.out","w",stdout);
        gets(a);
        gets(b);
        lenA=strlen(a);
        lenB=strlen(b);
        max=(lenA>lenB?lenA:lenB);
        min=(lenA<lenB?lenA:lenB);
        c[max]='';
        ci=0;
        i=lenA-1;
        j=lenB-1;
        k=max-1;
        while(min>0)//注意:这里不能写min>=0 
        {
            ai=a[i]-'0';
            bi=b[j]-'0';
            c[k]=(ai+bi+ci)%10+'0';
            ci=(ai+bi+ci)/10;
            i--;
            j--;
            k--;
            min--;
        }
        if(lenA>lenB)
        {
            for(i=lenA-lenB-1;i>=0;i--)
            {
                c[i]=(a[i]-'0'+ci)%10+'0';
                ci=(a[i]-'0'+ci)/10;
            }
        }
        else if(lenB>lenA)
        {
            for(i=lenB-lenA-1;i>=0;i--)
            {
                c[i]=(b[i]-'0'+ci)%10+'0';
                ci=(b[i]-'0'+ci)/10;
            }
        }
        if(ci!=0)
        {
            printf("%c",ci+'0');
            printf("%s",c);
            f=false;
        }
        else
        {
            for(i=0;i<max;i++)
                if(c[i]!='0')   break;
              for(;i<max;i++)
              {
                f=false;
                  printf("%c",c[i]);
            }
        }
        if(f)//注意:假如输入的两个数都是0,结果就应该是要输出0了。 
            printf("0");
        printf("
    ");
        return 0;
    }
  • 相关阅读:
    hibernate下载及配置超详细!
    如何新建一个jar包库?
    MySQL 之 索引原理与慢查询优化
    MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
    MySql之数据操作
    MySQL 之多表查询
    MySQL 简洁 数据操作 增删改查 记不住的 看这里把
    python 并发之多进程实现
    koa-static与react-create-app搭配的路径
    koa中返回404并且刷新后才正常的解决方案
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/3437167.html
Copyright © 2020-2023  润新知