news 2026/5/10 14:01:29

高精度减法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高精度减法

当在减法计算中,有时候数很大,当超出long long 的范围的时候,我们需要利用高精度算法来计算。

此时我们不在利用int/long long 来存储数据,而是用string来存储数据。用字符串存储两个很大的整数,在用数组存储数据之前,需要进行判断,减数和被减数谁更大,谁大把谁当成被减数(如果被减数<减数,最后在前面加一个负号即可),之和再开辟两个数组,把两个字符串里面存储的数字逆序存储在int数组中,(保证两个数字的低位对齐,方便计算),之和再遍历长度最长的那个数据,让两个数组对应下标的值相减,这个时候会产生借位问题,(以十进制为例)当被减数该下标的值小于减数该下标的值,就让该下标+1对应的值减一,该下标的值+10,之后再喝减数该下标的值相减(其他进制(n进制)只需要把10换成n即可(16进制除外,需要转换字母));

在输出的时候,要注意可能会有前导0(就是比如222和221,按以上方法会输出001,我们需要删除前面的两个0),删除前导0之后在进行输出(注意如果前面被除数和除数进行了交换,需要加负号),具体代码/注释如下

#include<bits/stdc++.h> using namespace std; int main() { //用数组模拟高精度 //整型数组 //反转存储:低位对齐 //高精度算法只能输入字符串 string s1, s2; cin >> s1 >> s2; int flag = 1; //标记(判断什么时候两个数交换) //当第二个数大于第一个数的时候,两数交换,(让大数减小数) //不能直接s2>s1因为当两个字符串的长度不一样的时候,且第一个字符串的前几个字符比s2大的时候,就无法正确比较 if ((s2>s1&&s1.size()==s2.size())||s2.size()>s1.size()) { string s3; s3 = s2; s2 = s1; s1 = s3; flag = 0; } int lmax = max(s1.size(), s2.size()); vector<int> vec3(lmax + 2); vector<int> vec1(lmax+2); vector<int> vec2(lmax+2); //给两数组赋值 for (int i = 0; i < s1.size();i++) { vec1[s1.size() - i] = s1[i]-'0'; //赋值为和字符‘0’的差值,不可以使用stoi,因为这是字符转数字 } for (int i = 0; i < s2.size(); i++) { vec2[s2.size() - i] = s2[i]-'0'; } for (int i = 1; i <= lmax;i++) { if (vec1[i]<vec2[i]) { //当被减数当位数字小于减数当位数字,就需要借位 vec1[i + 1]--; //借位 vec1[i] += 10; //(n进制把10换成n) } vec3[i] = vec1[i] - vec2[i]; } while (vec3[lmax]==0&&lmax>1) { //因为数组从下标1开始存的数,所以lmax得大于1 lmax--; //删除高位的0 } if (!flag) { //如果满足上面交换就需要加负号 cout << "-"; } for (int i = lmax; i >= 1;i--) { cout << vec3[i]; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 19:55:32

【计算机毕设】基于Python的Django-html基于web漏洞挖掘技术的研究

&#x1f49f;博主&#xff1a;程序员小俊&#xff1a;CSDN作者、博客专家、全栈领域优质创作者 &#x1f49f;专注于计算机毕业设计&#xff0c;大数据、深度学习、Java、小程序、python、安卓等技术领域 &#x1f4f2;文章末尾获取源码数据库 &#x1f308;还有大家在毕设选题…

作者头像 李华
网站建设 2026/5/9 1:30:05

宏智树 AI:ChatGPT 学术版驱动,重构学术写作智能新范式

在学术研究日益精细化、查重标准日趋严格的当下&#xff0c;论文写作常常陷入文献筛选繁琐、数据处理复杂、合规性难保障的困境。宏智树 AI 依托 ChatGPT 学术版模型与 AI5.0 技术架构&#xff0c;打造了专为学术场景量身定制的智能解决方案平台&#xff0c;为高校师生、科研人…

作者头像 李华
网站建设 2026/5/1 17:27:36

智慧校园综合管理平台解决方案综合概述与最佳实践

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园综合管理平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人…

作者头像 李华
网站建设 2026/5/10 10:32:29

AI大模型:python汽车大数据分析可视化系统 机器学习 协同过滤推荐算法 二手车推荐系统 汽车推荐系统 爬虫技术

博主介绍&#xff1a;✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…

作者头像 李华
网站建设 2026/5/10 10:32:31

Thinkphp和Laravel在线小说阅读评分平台_0hxfv含章节_

目录 ThinkPHP与Laravel构建在线小说阅读评分平台的关键实现数据库设计章节阅读功能实现评分系统设计性能优化建议 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 ThinkPHP与Laravel构建在线小说阅读评分平台的关键实现 平台核心功能需求 在线小…

作者头像 李华