北京网站建设报价榆林做网站公司

diannao/2026/1/18 11:38:54/文章来源:
北京网站建设报价,榆林做网站公司,wordpress指定文章登陆,免费模板网站知乎高精度前言 C中int不能超过2^31-1#xff0c;最长的long long也不能超过2^63-1,所以我们在题目中如果碰到了很长很长的数#xff0c;并且需要进行大数运算时#xff0c;就需要高精度存储。 高精度总体思路 由于int和long long的限制#xff0c;我们要想存放很长的数就需…高精度前言 C中int不能超过2^31-1最长的long long也不能超过2^63-1,所以我们在题目中如果碰到了很长很长的数并且需要进行大数运算时就需要高精度存储。 高精度总体思路 由于int和long long的限制我们要想存放很长的数就需要利用数组存储,C中可以利用STL中的vector容器存储 读取 由于数据很大用int存放不下一般利用字符串读取 数据存放用vector倒序存储即将小位放到前面将大位放到后面,这样方便数据处理 高精度算法 高精度加法 示例题目 我们一般习惯是加法从个位数开始运算 t表示进位初始t为0。先将个位数相加图中为6511 在加法中11%10 1为个位11/101为进位即t 1所以十位数相加为2417如此往复。根据此思路即可写出代码 //高精度加法 #includeiostream using namespace std; #includevectorvectorint add(vectorint A,vectorint B) {//进位t初始为0int t 0;vectorint C;//i到任意一方结尾停止for(int i 0;iA.size() || i B.size();i){if(iA.size() ) tA[i];if(i B.size()) tB[i];//相加后如果大于10要取余作为个位如果小于10不影响C.push_back(t%10);//算进位t t/10;}//最后一次计算 如果t为1 要在最高位补1if(t) C.push_back(t);return C; }int main() {vectorint A,B;//利用字符串读取string a,b;cinab;//将高位存放在后面低位存放的前面for(int i a.size()-1;i0;i--) A.push_back(a[i]-0);for(int i b.size()-1;i0;i--) B.push_back(b[i]-0);//auto为自动判断类型会自动判断函数的返回类型auto C add(A,B);for(int i C.size()-1;i0;i--) coutC[i]; } 其中a[i]-0是将字符类型的数字转换为整型类型的数字 需要注意的是这段代码 if(t) C.push_back(t); 这为了解决5050 100类似的情况最后一次计算后如果t1则需要在最高位补1。 高精度减法 示例题目  减法计算思路与加法相似 此时t表示的是借位总体计算公式为 a[i]-b[i]-借位。 借位的计算 如果这次的A[i]-B[i] 0则下次的借位为0反之下次计算的借位为1。 解决了计算的问题减法还有负数的问题如果小数减去大数要为负数所以我们需要自己写一个判断两数大小的函数 bool cmp(vectorint A,vectorint B) {if(A.size() ! B.size()) return A.size()B.size();for(int i A.size()-1;i0;i--){if(A[i] ! B[i]) return A[i]B[i];}return true; } 先比较两数的位数再依次比较两数的每一位到最后还未得出结果则返回true表示两数相等 在输出时分类讨论负数先输出负号在输出数据即可 完整代码 //高精度减法模板 #includeiostream using namespace std; #includevector bool cmp(vectorint A,vectorint B) {if(A.size() ! B.size()) return A.size()B.size();for(int i A.size()-1;i0;i--){if(A[i] ! B[i]) return A[i]B[i];}return true; }vectorint sub(vectorint A,vectorint B) {vectorint C;for(int i0,t0;iA.size();i){t A[i] -t;if(iB.size()) t-B[i];C.push_back((t10)%10);if(t0) t1;else t0;}//去除前导0while(C.size()1 C.back() 0 ) C.pop_back();return C; }int main() {string a,b;vectorint A,B;cinab;for(int i a.size()-1;i0;i--) A.push_back(a[i]-0);for(int i b.size()-1;i0;i--) B.push_back(b[i]-0);//正数if(cmp(A,B)){auto C sub(A,B);for(int i C.size()-1;i0;i--) coutC[i];}//负数else{auto C sub(B,A);cout-;for(int i C.size()-1;i0;i--) coutC[i];}return 0; } 在题目中可能会出现需要去除前导0的情况 例如输出023,这个0没有实际意义,需要去除被称为前导0 利用下面这段代码即可去除前导0 while(C.size()1 C.back() 0 ) C.pop_back(); 高精度乘法 示例题目 高精度乘法一般只考虑大数乘以小数 与加法十分类似所以具体思路参考加法需要注意的是乘法也需要去前导0. #includeiostream using namespace std; #includevectorvectorint mul(vectorint A,int b) {vectorint C;int t 0;for(int i 0;iA.size();i) {if(iA.size()) t A[i]*b;C.push_back(t%10);t t/10;}while(C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a;int b;vectorint A;cinab;for(int i a.size()-1;i0;i--) A.push_back(a[i]-0);auto C mul(A,b);for(int i C.size()-1;i0;i--) coutC[i];return 0; } 高精度除法 实例题目 高精度除法需要注意的是余数并且与加减乘法不同的是除法是从高位开始计算的而加减乘法是从低位开始计算的需要加以区别 模拟除法过程我们可以发现每次的被除数是上次计算得到的余数r*10加上a[i]在图中为 1*10515我们将r/b入数组即可。 完整代码 #includeiostream using namespace std; #includevector #includealgorithmvectorint div(vectorint A,int b,int r)//r传入r的地址便于直接对余数r进行修改 {r 0;vectorint C;for(int i A.size()-1;i0;i--)//对A从最高位开始处理{r r*10A[i];//对A从最高位开始处理C.push_back(r/b);//将上次的余数*10在加上当前位的数字便是该位需要除的被除数r r%b;//余数}//由于在除法运算中高位到低位运算因此C的前导零都在vector的前面而不是尾部vector只有删除最后一个数字pop_back是常数复杂度而对于删除第一位没有相应的库函数可以使用而且删除第一位其余位也要前移//因此我们将C翻转这样0就位于数组尾部可以使用pop函数删除前导0reverse(C.begin(),C.end());while(C.size()1 C.back() 0 ) C.pop_back();return C; } int main() {string a;int b;cinab;vectorint A;for(int i a.size()-1;i0;i--) A.push_back(a[i]-0);int r;auto C div(A,b,r);for(int i C.size()-1;i0;i--) coutC[i];coutendlrendl; } 高精度除法同样需要去除前导0不过不同的是由于在除法运算中高位到低位运算因此C的前导零都在vector的前面而不是尾部vector只有删除最后一个数字pop_back是常数复杂度而对于删除第一位没有相应的库函数可以使用而且删除第一位其余位也要前移因此我们可以利用reverse()函数将C翻转这样0就位于数组尾部可以使用pop函数删除前导0 此篇为学习之余的总结作为笔记使用如果有错误还请指正谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站用什网络营销有什么新的变化

系列型号: RXMK1 RK 255 049大容量交流中间继电器 RXMK1 RK 255 050大容量交流中间继电器 RXMK1 RK 255 051大容量交流中间继电器 RXMK1 RK 255 052大容量交流中间继电器 RXMK1 RK 255 053大容量交流中间继电器 RXMK1大容量交流中间继电器 一、 用途及工作原理 RX…

网站好玩代码和特效广元建设网站

天平问题 解题思路: 有n个砝码,问可以称出多少种重量,可以在左边或者右边放,也可以不放 原题: 题目描述 小C为了试验小X,便为物竞的小X出了一道物理相关的题:现在给出n个质量的砝码&#x…

做企业规划的网站网站建设心得总结

在上一篇文章中,我详细介绍了代码对主内存的访问方式的含义。 从那时起,我对使用Java可以做什么以实现更可预测的内存布局有很多疑问。 有些模式可以使用数组支持的结构来应用,我将在另一篇文章中讨论。 这篇文章将探讨如何模拟Java中非常缺少…

谷谷互联建的网站如何把qq在线榆林网站建设

一、项目简介 本项目是一套基于Springbootvue实现的医院住院管理系统设 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简…

优质网站建设的设计要点开源的企业网站管理系统

题解一: 排序:对两个字母异位词,二者排序后的字符串完全一样,因此可以对所给字符串进行排序,以排序后的字符串作为HashMap哈希表的键值,将排序前的字符串作为值进行存储分组,最后返回。 import…

那个网站可以帮助做数学题徐州网站建设专家

hbase修改表名hbase修改表名没有直接的api可以调用,我们如果想要修改表名,可以利用快照的方式。需要开启快照功能,在hbase-site.xml文件中添加如下配置项:hbase.snapshot.enabledtrue命令hbase shell> disable tableNamehbase …

公司网站如何建设php自己写框架做网站6

SQLSTATE 消息 本节列示 SQLSTATE 及其含义。SQLSTATE 是按类代码进行分组的;对于子代码,请参阅相应的表。 表 2. SQLSTATE 类代码 类 代码 含义 要获得子代码, 参阅... 00 完全成功完成 表 3 01 警告 表 4 02 无数据 表 5 07 动态 …

佛山高端网站wordpress图片上传地址修改

前言 对于爬虫的小伙伴来说,有时候只需抓取页面的文本,不用加载图片,可以加快操作页面速度,那么我们可以设置禁止加载图片等资源。 禁止图片加载 根据url地址的后缀,图片资源后缀一般是png,jpg,jpeg,gif等格式。 from playwright.sync_api import sync_playwrightwith…

网站必须备案电商类网站开发合同书

prompt 请根据疾病名:" disease_name " 为我生成一份病历。下面是病历内容的要求:病例应严格包含如下几项: 性别,年龄,疾病名(必须是" disease_name "),主诉&#xff…

北京网站维护网站pc转移动端代码

From: http://hi.baidu.com/anxing_space/blog/item/6b31186dd6d1d7f942169468.html 今天在博客园上看到一片超赞的C#字符串格式的文章,是我看过最好的一个关于字符格式的文章,转来收藏,顺便向原作者flyingbread表示感谢和尊敬! 1…

导购网站 模板专门做化妆品平台的网站

正常方式是Integer.toString(i)或String.valueOf(i)。串联将工作,但它是非常规的,可能是一个难闻的气味,因为它暗示作者不知道上述两种方法(他们不知道什么?)。Java在使用字符串(见the documentation)时对操作符提供了特殊的支持&…

浦口区网站建设及推广定制西服大概多少钱一套

前言 因为疫情的原因,以学校为单位在校参加!(就很秃然) 注:前三天是普及组,后三天是提高组 Day 1 第一次参加,以为会被虐得成狗,以忐忑的心情打开T1 4⩽n⩽20004\leqslant n\leqs…

做宾馆网站好北京网站开发服务商

每次找到所有叶子节点,把它们的父亲染白,自己染黑。这个时候染完的叶子节点及其父亲节点对树的其他部分已无影响 ,可以直接删掉。 那么只需要判断树的其他部分是否有先手必胜策略即可。用递归遍历。 边界条件:若树为单一节点先手必胜。 代…

怎样做理财网站好兄弟资源网在线看片

全局模式 \documentclass[12pt]{article} 在文档的开头,有设置整个文章的字体大小,如:12pt。 局部模式 设置字体大小的命令从小到大为: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \Huge…

微信电影网站怎么做杭州微网站开发

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenguang.blog.51cto.com/350944/1325742 可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流…

多网合一网站平台建设免费品牌网站制作

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「85」篇原创敬上随着20年来互联网的蓬勃发展,一个软件系统所要面对的访问压力上限被逐渐提高。虽然如此,但是那些体量达到亿级或者是千万级…

怎么建立一个网站让外国人浏览做吉祥物的网站

项目 一个Qt Quick应用程序设计的横向和纵向设备,使用自定义组件,响应式布局和JavaScript的应用程序逻辑。 项目路径: Qt\Examples\Qt-6.7.1\demos 环境:Qt6.7.1 MSVC 2019 64位 项目目录: calqlatr--CMakeList.txt…

做网站推广要注意的事项免费seo提交工具

首先我们看一张图 这里我们类比了Java的jvm和JavaScript的node.js。 可以看到,node.js是基础,提供了基础的编译执行的能力。vue,js是实际上定义了一种他自己的代码格式,以加速开发。

厦门网站建设开发如何调整

背景介绍 在机器学习的训练数据集中,我们经常使用多批次的训练来实现更好的训练效果,具体到cv领域,我们的训练数据集通常是[B,C,W,H]格式,其中,B是每个训练批次的大小,C是图片的通道数,如果是1…

如何免费建设一个网站网站的前期推广

文章目录一、命令介绍二、常用选项三、命令示例(一)压缩文件(二)解压文件一、命令介绍 compress 命令使用“Lempress-Ziv”编码压缩数据文件。compress 是一个相当古老的 unix 档案压缩程序,文件经它压缩后&#xff0…