高精度计算

1、高精度加法

cpp 复制代码
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
vector<int> add(vector<int> &A,vector<int> &B){
	if(A.size()<B.size()) return add(B,A);
	int t=0;
	vector<int> C;
	for(int i=0;i<A.size();i++){
	    t+=A[i];
		if(i<B.size()) t+=B[i];
		C.push_back(t%10);
		t/=10;
	}
	if(t) C.push_back(t);
	return C;
}
int main(){
	string a,b;
	cin>>a>>b;
	vector<int> A,B;
	for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
	for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
	vector<int> C=add(A,B);
	for(int i=C.size()-1;i>=0;i--)cout<<C[i];
	return 0;
}

核心思想:用数组/向量存储大数的每一位(个位在前,高位在后),模拟竖式加法。

bash 复制代码
输入: "123" + "94"

存储:  A = [3,2,1]    B = [4,9]

计算过程:
i=0: t=3+4=7    C=[7]      t=0
i=1: t=2+9=11   C=[7,1]    t=1  
i=2: t=1+1=2    C=[7,1,2]  t=0

结果C = [7,1,2] → 倒序输出 "217"

验证: 123+94=217 ✓
相关推荐
weixin_440730505 分钟前
内置函数、json文本、pickle二进制
开发语言·python·json
殷色玫瑰12 分钟前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
李游Leo16 分钟前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 高斯参数的非有限值隔离与可渲染性门禁【鸿蒙心迹】
开发语言·c++·3d·harmonyos
Evand J22 分钟前
【MATLAB例程】三维RRT+APF路径规划与AOA-TDOA融合定位算法。附代码的下载链接
算法·matlab·路径规划·rrt·tdoa·apf·aoa
时间的拾荒人1 小时前
Qt 文件操作详解:从基础类到读写实战
开发语言·qt·面试
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-YApi接口管理平台与文档导入导出
java·开发语言·yapi
海绵宝宝转agent1 小时前
leetCode100算法开源笔记分享
笔记·算法
jimy11 小时前
基类没有虚析构函数,基类指针删除派生类对象,行为是未定义的
开发语言·c++
迅猛龙办公室1 小时前
python获取星期字符串
开发语言·python
写后端的胖头鱼1 小时前
时间复杂度 & 空间复杂度
java·数据结构·算法·时间复杂度·空间复杂度