一、高精度运算基本原理
高精度运算也称之为大数运算。即:在变量运算对象的数值范围为任何数据类型所无法容纳的情况下,采用整数数组存储(用字符串表示数字)。高精度运算的难度并不大,考虑不清楚的话列个竖式模拟计算一下即可。
高精度运算的基本思路如下:
- 将输入的字符串按位转为int格式存储到容器或是数组中;
- 通过循环对每一位做运算处理,注意是否有进位或是借位等情况;
- 考虑循环终止后的边界情况,按位输出即可。
二、 高精度加法
题目描述
给定两个正整数(不含前导 00),计算它们的和。
输入格式
共两行,每行包含一个整数。
输出格式
共一行,包含所求的和。
数据范围
1 ≤ 整数长度 ≤ 100000
输入样例:
12 23输出样例:
35题目链接:

参考代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string A,B;
//这里我图方便用vector容器来存储数据,一般情况下数组会快一点
vector<int> a,b,c;
cin>>A>>B;
int i,temp = 0;
//逆向存储,A[0]是最低位
for(i=A.size()-1;i>=0;i--) a.push_back(A[i]-'0');
for(i=B.size()-1;i>=0;i--) b.push_back(B[i]-'0');
for(i=0;i<a.size()||i<b.size();i++)
{
if(i<a.size()) temp += a[i];
if(i<b.size()) temp += b[i];
c.push_back(temp%10);
temp /= 10;//进位



被折叠的 条评论
为什么被折叠?



