zoukankan      html  css  js  c++  java
  • 简单高精度加法

    【高精度】简单高精度加

    题目描述

    修罗王解决了计算机的内存限制问题,终于可以使用电脑进行大型的魔法运算了,他交给邪狼的第一个任务是计算两个非负整数A、B的和,其中A和B的位数在5000位以内。

    输入

    共两行数据,第一行为一个非负整数A,第二行为一个非负整数B,A、B的位数均在5000以内。

    输出

    输出一个非负数,即两数之和。

    样例输入

    1111111111
    2222222222
    

    样例输出

    3333333333
    
    #include <bits/stdc++.h>
    #define N 5000
    #define ZEROCHAR -48
    int maxleng(int a,int b)
    {
        return a>b?a:b;
    }
    int transnumber(char c)
    {
        return c-'0';
    }
    int main()
    {
        char a[N+5],b[N+5];
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        scanf("%s %s",a,b);
        int len1=strlen(a);
        int len2=strlen(b);
        int i;
        for(i=0;i<(len1+1)/2;++i)
        {
            if(i==len1-1-i)
                break;
            a[i]=a[i]+a[len1-1-i];
            a[len1-1-i]=a[i]-a[len1-1-i];
            a[i]=a[i]-a[len1-1-i];
        }
        for(i=0;i<(len2+1)/2;++i)
        {
            if(i==len2-1-i)
                break;
            b[i]=b[i]+b[len2-1-i];
            b[len2-1-i]=b[i]-b[len2-1-i];
            b[i]=b[i]-b[len2-1-i];
        }
     
        int leng=maxleng(len1,len2);
        int c,psum,sum[N+5],an,bn;
        for(i=0,c=0,psum=0;i<=leng;++i)
        {
            an=transnumber(a[i]);
            bn=transnumber(b[i]);
            if(an==ZEROCHAR)
                an=0;
            if(bn==ZEROCHAR)
                bn=0;
            psum=an+bn+c;
            sum[i]=psum%10;
            c=psum/10;
        }
        int sumleng=(sum[leng]>0?leng+1:leng);
        for(i=sumleng-1;i>=0;--i)
        {
            printf("%d",sum[i]);
        }
        printf("
    ");
        return 0;
    }
  • 相关阅读:
    char*,const char*和string的相互转换[转]
    1.0到2.0 的变化
    Hello项目分析
    VS上编译Lua5.1.4生成静态库
    cocos2dx 自带动画
    asp.net2.0安全性(Login系列控件)
    用js实现的对css的一些操作方法
    mapxtreme开发小结3(c#)
    asp.net页面事件执行顺序
    access与SqlServer 之时间与日期及其它SQL语句比较
  • 原文地址:https://www.cnblogs.com/Diliiiii/p/9164563.html
Copyright © 2011-2022 走看看