当数据的值特别⼤,各种类型都存不下的时候,此时就要⽤⾼精度算法来计算加减乘除:
- 先⽤字符串读⼊这个数,然后⽤数组逆序存储该数的每⼀位;
- 利⽤数组,模拟加减乘除运算的过程。
⾼精度算法本质上还是模拟算法,⽤代码模拟⼩学列竖式计算加减乘除的过程
P1601 A+B Problem(高精) - 洛谷
模拟⼩学「列竖式」计算「两数相加」的过程
![![[Pasted image 20250325135304.png]]](https://i-blog.csdnimg.cn/direct/368528ef302841cc8661915d3acea9ab.png)
- ⽤字符串读⼊数据;
- 将字符串的每⼀位拆分,逆序放在数组中;
- 模拟列竖式计算的过程:
a. 对应位累加;
b. 处理进位;
c. 处理余数。 - 处理结果的位数。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int a[N], b[N], c[N];
int la, lb, lc;
void add(int c[], int a[], int b[])
{
for (int i = 0; i < lc; i++)
{
c[i] += a[i] + b[i];
c[i + 1] += c[i] / 10;
c[i] %= 10;
}
if (c[lc]) lc++;
}
int main()
{
ios::
十六届蓝桥杯高精度加减乘除算法

最低0.47元/天 解锁文章
1501

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



