一、高精度"+"算法

1.1 编写高精度"+",记住下面的内容,代码也就游刃有余了

(1) 首先我们要明白大整数是如何存储的?

(2) 其次存储完,考虑如何运算?

二、高精度"+"算法的核心

2.1 大整数存储

• 将大整数每一位是存到数组中,要保证高位在前,这个是考虑到进位,在高位上补一个数(如果在数组末尾补上这个数很容易,但如果在数组开头补上这个数需要把整个数组全部向后平移一位)。

2.2 加法运算的本质

• 实际就是满10进1的过程:A3A2A1A0+B2B1B0=C,考虑每个对应位Ai+Bi+t(1/0),t就是进位。

2.3 另外我们要知道

(1) A+B A与B小于数值(10^6)

(2) A-B A与B小于数值(10^6)

(3) A*a A要满足len(A)小于10^6,Note:这个是位数

(4) A/a A要满足len(A)小于10^6

三、高精度"+"的代码模板

// C = A + B, A >= 0, B >= 0
vector<int> add(vector<int> &A,vector<int> &B)//A与B是倒着表示完的数组
{
vector<int> C; int t=0;//进位,一开始是零
for(int i=0;i<A.size()||i<B.size();i++)
{
if(i<A.size()) t+=A[i];
if(i<B.size()) t+=B[i];//Ai+Bi+t
C.push_back(t%10);
t/=10;
}
if(t) C.push_back(1);
return C;
}
"""
string a, b;
vector<int> A,B;
cin>>a>>b;
for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');//数字字符减去'0'将其转化位整数数字
for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');//大整数存储部分的代码
"""

最新文章

  1. HackerRank &quot;AND xor OR&quot;
  2. myecplise tomcat jdk
  3. MVC MVVM Knockout 常遇问题总结
  4. 轻松学习 red5 教程 像视频一样很详细还有代码直接可Copy
  5. mysql基本介绍和优化技巧
  6. IOS内存等信息
  7. Python正则匹配递归获得给出目录下的特定类型的文件小技巧
  8. ajax获取的全部是object,我要获取的是json
  9. webform中 ajax调用后台方法(非webservice)
  10. 动态创建Fastreport(delphi)
  11. nodejs中异步
  12. MySQL执行计划extra中的using index 和 using where using index 的区别
  13. 机器学习算法实践:Platt SMO 和遗传算法优化 SVM
  14. Integrates Git with Sublime 3 to pull or push to Github by using Sublime plugin Git
  15. gops - Go语言程序查看和诊断工具
  16. Android自定义View(CustomCalendar-定制日历控件)
  17. windows下使用git和github建立远程仓库
  18. 使用rpm-build制作nginx的rpm包
  19. ML: 降维算法-LLE
  20. 浅谈ES6原生Promise

热门文章

  1. Linux安装svn服务
  2. VB.NET XOR 运算
  3. 一、安装Docker CE
  4. Python爬虫之爬取站内所有图片
  5. python en(de)code
  6. SHELL小练习
  7. input系统&mdash;&mdash;android input系统
  8. iPhone X价格下跌!用户依旧冷眼相看为哪般?
  9. Python---12函数式编程------12.3匿名函数&amp;装饰器&amp;偏函数
  10. Myeclipse 错误An internal error has occurred 解决办法