zoukankan      html  css  js  c++  java
  • 2205 Problem B

    问题 B: 【高精度】简单高精度加法

    时间限制: 1 Sec  内存限制: 64 MB 提交: 77  解决: 25 [提交][状态][讨论版]

    题目描述

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

    输入

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

    输出

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

    样例输入

    1111111111
    2222222222
    

    样例输出

    3333333333
    

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 using namespace std;
     5 char a[5555],b[5555];
     6 int tag=0,c[5555];
     7 int na,nb,cut;
     8 int i,j;
     9 int main()
    10 {
    11     while(cin>>a>>b){
    12         tag=0;
    13         na=strlen(a)-1;
    14         nb=strlen(b)-1;
    15         cut=max(na,nb);
    16         for(i=na,j=nb;i>=0&&j>=0;i--,j--){
    17             tag=(a[i]-'0')+(b[j]-'0')+tag;
    18             if(i==0&&j==0){
    19                 c[cut--]=tag;
    20             }
    21             if(tag>=10){
    22                 c[cut--]=tag%10;
    23                 tag=1;
    24             }
    25             else{
    26                 c[cut--]=tag;
    27                 tag=0;
    28             }
    29         }
    30         while(i>=0){
    31             tag=(a[i]-'0')+tag;
    32             if(i==0){
    33                 c[cut--]=tag;
    34             }
    35             if(tag>=10){
    36                 c[cut--]=tag%10;
    37                 tag=1;
    38             }
    39             else{
    40                 c[cut--]=tag;
    41                 tag=0;
    42             }
    43             i--;
    44         }
    45         while(j>=0){
    46             tag=(b[j]-'0')+tag;
    47             if(j==0){
    48                 c[cut--]=tag;
    49             }
    50             if(tag>=10){
    51                 c[cut--]=tag%10;
    52                 tag=1;
    53             }
    54             else{
    55                 c[cut--]=tag;
    56                 tag=0;
    57             }
    58             j--;
    59         }
    60         cut=max(na,nb);
    61         for(i=0;i<=cut;i++){
    62             cout<<c[i];
    63         }
    64         cout<<endl;
    65         memset(a,0,sizeof(a));
    66         memset(b,0,sizeof(b));
    67         memset(c,0,sizeof(b));
    68     }
    69     return 0;
    70 }
  • 相关阅读:
    win7下virtualbox遇到的问题
    2.5年, 从0到阿里
    TCP/IP入门(4) --应用层
    TCP/IP入门(3) --传输层
    TCP/IP入门(2) --网络层
    TCP/IP入门(1) --链路层
    Socket编程实践(13) --UNIX域协议
    Socket编程实践(12) --UDP编程基础
    Socket编程实践(10) --select的限制与poll的使用
    Socket编程实践(9) --套接字IO超时设置方法
  • 原文地址:https://www.cnblogs.com/asuml/p/5673988.html
Copyright © 2011-2022 走看看