高精度加法笔记
vector<int> u; //储存a倒序的每个数 vector<int> v; //储存b倒序的每个数 vector<int> add(vector<int> m, vector<int> n) {//高精度加法 vector<int> temp;//temp数组存储相加后的每个数 int t=0;//t作为每个数相加的和 for (int i = 0; i < m.size() || i < n.size(); i++) {//遍历u,v数组 if (i < m.size()) t += m[i]; if (i < n.size()) t += n[i]; temp.push_back(t % 10);//向temp尾部中塞入每个数相加后的最后一位 t /= 10;//计算进位值存入下一位的计算 } if (t > 0) {//当最后两个数相加后仍需要进位 temp.push_back(1);//向temp尾部塞入1 } return temp; } int main() { string a, b; cin >> a >> b; /*例:a=123456,b=123456*/ for (int i = a.size() - 1; i >=0; i--) u.push_back(a[i] - '0');//将字符串形式的a,b转换为int十进制形式 for (int i = b.size() - 1; i >=0; i--) v.push_back(b[i] - '0'); //从a,b最后一位开始读取,逐个塞入u,v的尾部 /*例:u=654321,v=654321*/ vector<int> c = add(u, v); for (int i = c.size() - 1; i >= 0; i--) printf("%d", c[i]);//计算后再次倒序输出c /*例:c=219642,输出246912为最后答案*/ return 0; }
//模拟竖式计算过程,重点在倒序相加,便于计算机处理
//使用vector动态数组,节省空间
//入函数时可使用vector
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具