高精度计算

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 ✓
相关推荐
名字还没想好☜15 分钟前
Go 用 json.Decoder 流式解析大 JSON:边读边处理不爆内存
开发语言·后端·golang·go·json
xiangyun6118 分钟前
【408数据结构 03】线性表与顺序表:C++手写SeqList
开发语言·数据结构·c++
Lsir10110_33 分钟前
从按钮“点不动“讲起——深入理解 Qt 信号槽机制
开发语言·qt·信号处理
君科程序定做35 分钟前
用 IDL 处理高分一号(GF-1 / GF-1B/C/D)数据
c语言·开发语言
敲代码的嘎仔38 分钟前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
Q26433650231 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计
不会就选b1 小时前
算法日常・每日刷题--贪心<11>
算法·leetcode·职场和发展
千里码aicood1 小时前
面向电商冷启动与数据稀疏性的协同过滤算法优化研究
大数据·算法·协同过滤
xxxiugou1231 小时前
双指针解题秘籍:从入门到精通
c语言·数据结构·c++·算法
代码中介商1 小时前
C++ 预约系统实战(一):项目总览与 C/S 架构设计
c语言·开发语言·c++