高精度计算

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 ✓
相关推荐
一行代码改三天2 小时前
奖学金+回文数2+加法器
算法
Hello.Reader2 小时前
Tauri 项目结构前端壳 + Rust 内核,怎么协作、怎么构建、怎么扩展
开发语言·前端·rust
sycmancia2 小时前
C++——二阶构造模式
c++
lsx2024062 小时前
SQLite 命令详解
开发语言
csbysj20202 小时前
CSS3 2D 转换
开发语言
froginwe112 小时前
Ruby 类和对象
开发语言
敲代码的哈吉蜂2 小时前
haproxy的算法——混合算法
linux·运维·服务器·算法
追随者永远是胜利者2 小时前
(LeetCode-Hot100)283. 移动零
java·算法·leetcode·职场和发展·go
We་ct2 小时前
LeetCode 129. 求根节点到叶节点数字之和:两种解法详解(栈+递归)
前端·算法·leetcode·typescript