zoukankan      html  css  js  c++  java
  • 3116 高精度练习之加法

    题目描述 Description

    给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。

    输入描述 Input Description

    读入两个用空格隔开的正整数

    输出描述 Output Description

    输出A+B的值

    样例输入 Sample Input

    3 12

    样例输出 Sample Output

    15

    数据范围及提示 Data Size & Hint

    两个正整数的位数不超过500位

    近几天会做一套高精度专题,主要练习高精度加法、高精度减法、高精度乘法。

    模拟加法的手算过程,注意进位的处理。

    附AC代码:

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 
     5 int a[510],b[510],c[510];
     6 
     7 int main(){
     8     string al,bl;
     9     cin>>al>>bl;
    10     memset(a,0,sizeof(a));
    11     memset(b,0,sizeof(b));
    12     memset(c,0,sizeof(c));
    13     int lena=al.size();
    14     int lenb=bl.size();
    15     for(int i=0;i<lena;i++){//将两加数反向输入数组 
    16         a[lena-i]=al[i]-48;//此处也可用“-‘0’”代替 
    17     }
    18     for(int i=0;i<lenb;i++){
    19         b[lenb-i]=bl[i]-48;
    20     }
    21     int lenc=1;
    22     int x=0;
    23     while(lenc<=lena||lenc<=lenb){//模拟加法运算 
    24         c[lenc]=a[lenc]+b[lenc]+x;
    25         x=c[lenc]/10;
    26         c[lenc]%=10;
    27         lenc++;
    28     }
    29     c[lenc]=x;
    30     if(c[lenc]==0){//去除开头为0的情况 
    31         lenc--;
    32     }
    33     for(int i=lenc;i>=1;i--){//输出最终和 
    34         cout<<c[i];
    35     }
    36     cout<<endl;
    37     return 0;
    38 } 
  • 相关阅读:
    揭秘淘宝286亿海量图片存储与处理架构
    从能做的事做起,做越来越多的事
    用表驱动代替switchcase
    文件过滤驱动中的重入处理
    谈谈对APC的一点理解
    StartIo例程的作用
    C++各大名库的介绍
    IRQL
    FastIO
    一道面试题,看这段代码最后抛出什么异常
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5672612.html
Copyright © 2011-2022 走看看