// C = A + B, A >= 0, B >= 0vector<int> add(vector<int> &A, vector<int> &B)
{
if (A.size() < B.size()) return add(B, A);
vector<int> C;
int t = 0;
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;
}
4. 高精度加法例题
https://www.acwing.com/problem/content/793/
//这里采用了vector容器//也可以使用数组来进行替代,只需要额外记录长度即可#include<iostream>#include<cstdio>#include<vector>
using namespace std;
vector<int> add(vector<int> &A,vector<int> &B){
vector<int> C;
//代表进位int t = 0;
for(int i = 0;i < A.size() || i < B.size();i ++){
//计算A[i] + B[i] + tif(i < A.size()){
t += A[i];
}
if(i < B.size()){
t += B[i];
}
//将结果放在大数C中
C.push_back(t % 10);
//查看是否进位
t /= 10;
}
//如果相加完之后,发现仍有进位,那么放在大数C的最高位即可if(t == 1){
C.push_back(1);
}
return C;
}
intmain(){
//由于数字很大,因此字符串接收//通过遍历字符串,将每位数字放在数组里string a,b;
cin >> a >> b; // a = "123456"vector<int> A;
vector<int> B;
//按照规定次序放在数组里for(int i = a.size() - 1; i >= 0;i --){ // A = [6,5,4,3,2,1]
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--){
printf("%d",C[i]);
}
return0;
}
//c语言写法#include<iostream>#include<cstdio>#include<cstring>
using namespace std;
char A_str[1000010];
int A[1000010];
char B_str[1000010];
int B[1000010];
int C[1000010];
int a_len,b_len,c_len;
voidadd(int A[],int B[]){
//代表进位int t = 0;
for(int i = 0; i < a_len || i < b_len; i++){
if(i < a_len){
t += A[i];
}
if(i < b_len){
t += B[i];
}
C[c_len++] = t % 10;
t /= 10;
}
if(t == 1){
C[c_len++] = 1;
}
}
intmain(){
scanf("%s%s",A_str,B_str);
//将字符串转换为数字
a_len = strlen(A_str);
b_len = strlen(B_str);
int cnt = 0;
for(int i = a_len - 1; i >= 0; i--){
A[cnt++] = A_str[i] - '0';
}
cnt = 0;
for(int i = b_len - 1; i >= 0; i--){
B[cnt++] = B_str[i] - '0';
}
add(A,B);
for(int i = c_len - 1; i >= 0;i --){
printf("%d",C[i]);
}
return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现