也想出现在这里?点击联系我~ c++高精度算法,对于新手来说还是一大挑战,只要克服它,你就开启了编程的新篇章,算法。 我发的这个代码并不是很好,占用内存很多而且运行时间很长(不超过1秒),但是很好理解,很适合新手 高精算法的本质就是把数组编程字符串,然后将字符串像竖式一样加起来: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 a+b高精度算法 #include <iostream> #include <cmath> #include <cstring> using namespace std; int main() { char a[100010],b[100010]; cin>>a>>b;//输入两个字符串。 int c[100010],d[100010],h[100010],n1,n2,i,jw=0;//设三个正整形数组,来存放两个加数,一个存放和。n1n2来存放字符串a、b的长度。 n1=strlen(a);//将字符串a的长度存到n1里面 n2=strlen(b); for(i=0;i<n1/2;i++) swap(a[i],a[n1-1-i]);//调换加数字符串的顺序,这样可以使各位对齐,就像加法竖式一样。 for(i=0;i<n2/2;i++) swap(b[i],b[n2-1-i]);//同上 for(i=0;i<n1;i++) c[i]=a[i]-'0';//把字符串c转化到数组a中,其中-‘0'就是转化方式 for(i=0;i<n2;i++) d[i]=b[i]-'0'; if(n1>n2) swap(n1,n2); //比较两个数组长度,选长的做for循环的条件。 for(i=0;i<n2;i++) h[i]=c[i]+d[i]; for(i=0;i<n2;i++) { if(h[i]>=10) { jw=h[i]/10; //取进位 h[i]=h[i]-10;//去掉进位 h[i+1]++; } if(jw>0) { jw=0;//初始化进位 } } if(h[n2]!=0) cout<<h[n2];//判断最高位是否有进位,有则输出。 for(i=n2-1;i>=0;i--) cout<<h[i]; } 以上就是小编为大家带来的c++加法高精度算法的简单实现的全部内容了,希望对大家有所帮助,多多支持快网idc~ 收藏 (0) 打赏 感谢您的支持,我会继续努力的! 打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在 点赞 (0) 声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。 快网idc优惠网 建站教程 c++加法高精度算法的简单实现 https://www.kuaiidc.com/74522.html C++加法高精度 站长 生成海报 复制本文链接 详解servlet的url-pattern匹配规则 C语言自增(++)和自减(–)实例详解 也想出现在这里?点击联系我~ 相关文章 猜你喜欢 发表评论 暂无评论 登录后评论 站长 QQ 微信 微信 微博 - 文章 - 浏览 - 收藏 - 评论 - 标签 - 分类 关注Ta发私信 进主页 TA的动态 快网idc优惠网 idc信息共同学习,共同进步,共同成长! QQ交流群 QQ交流群 您的支持,是我们最大的动力! 热门文章 热门评论 如遇问题,请联系客服 咨询在线客服 联系客服请注明来意 高端主题开发 微信公众号 高端主题 返回顶部 首页 服务器 国内服务器 国外服务器 服务器测评 VPS测评 数据库RDS 安全产品 SSL证书 网址导航 教程资讯 建站教程 解决方案 行业资讯 论坛社区 论坛大厅 问答社区