洛谷1601 A+B Problem(高精)

本题地址:http://www.luogu.org/problem/show?pid=1601

题目背景

题目描述

高精度加法,x相当于a+b problem,不用考虑负数

输入输出格式

输入格式:

分两行输入a,b<=10^500

输出格式:

输出只有一行,代表A+B的值

输入输出样例

输入样例#1:

1
1

输出样例#1:

2

题解

高精度

题目非常简单,但数据规模却非常大,显然是常规数据类型无法承受的,因此不能用普通做法来完成这道题。

我们可以借助高精度。高精度运算实际上是运用了模拟的思想,对现实数学竖式运算的过程进行了模拟。

因此,我们可以用数组来存储一个大规模数据,并对其运算,数组的运算规则如同算术的竖式运算(注意相加进位),步骤如下:

1.求出和的最小可能位数。

2.从低位到高位,逐位相加。

3.从低位到高位处理进位,满十进一。

4.处理最高位的进位。

5.输出结果。

下面附上代码。

代码

  1. var i,l1,l2:longint;
  2. a,b,c:array [1..502] of longint;
  3. ch:array [1..502] of char;
  4. begin
  5. repeat
  6. inc(l1);
  7. read(ch[l1]);
  8. until eoln;
  9. for i:=1 to l1 do a[i]:=ord(ch[l1-i+1])-48;
  10. readln;
  11. repeat
  12. inc(l2);
  13. read(ch[l2]);
  14. until eoln;
  15. for i:=1 to l2 do b[i]:=ord(ch[l2-i+1])-48;
  16. if l1<l2 then l1:=l2;//加法运算要进行max(l1,l2)次,这里用l1保存运算次数
  17. for i:=1 to l1 do
  18. begin
  19. inc(c[i],a[i]+b[i]);//还要加上可能有的从低位进上来的值
  20. if c[i]>=10 then//进位
  21. begin
  22. dec(c[i],10);
  23. inc(c[i+1]);
  24. end;
  25. end;
  26. if c[l1+1]>0 then inc(l1);//检测最高位是否进位
  27. for i:=l1 downto 1 do write(c[i]);
  28. end.

(本文系笔者原创,未经允许不得转载)

最新文章

  1. 3篇NeuroImage文献分析
  2. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
  3. Trianglify - 生成五彩缤纷的 SVG 背景图案
  4. USACO八皇后
  5. IOS下自定义click事件使用alert引发的血案
  6. html5入门
  7. Spring(十)Spring任务调度
  8. WEB-INF目录下的jsp页面如何访问?
  9. Entity Framework - 理清关系 - 基于外键关联的单向一对一关系
  10. github概念和实战
  11. openerp模块收藏 基于Lodop的报表打印模块(转载)
  12. Webx pull service
  13. Algorithm --&gt; 十大排序算法
  14. CentOs~程序部署那些事
  15. 浅析软件工程中的UML建模技术
  16. 在JS中统计函数执行次数与执行时间
  17. 将文件转换为base64字符串,然后还原
  18. 初级ai思维导图,基础人工智能设计图
  19. facebook api之Access Tokens之Business Manager System User
  20. Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

热门文章

  1. Codeforces Round #243 (Div. 1)——Sereja and Squares
  2. Python list 和 str 互转
  3. IOS版App的控件元素定位
  4. linux安装ssh(转载)
  5. 【BZOJ3252】攻略 DFS序+线段树(模拟费用流)
  6. Hibernate表关系映射之一对一映射
  7. Colly provides a clean interface to write any kind of crawler/scraper/spider
  8. define tensorflow and run it
  9. [2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享
  10. java 浮点数