C++中怎么实现一个大整数乘法

这篇文章给大家介绍C++中怎么实现一个大整数乘法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联欢迎咨询:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,成都创新互联网页制作领域十年,包括成都集装箱等多个方面拥有丰富的网站维护经验,选择成都创新互联,为企业保驾护航!

算法竞赛入门经典 这本书并没有对大数乘法实现,所以自己补充了一下,乘法的实现很简单,就是再其数据结构基础上把每宽为8位的十进制数看成多项式的系数,vector的下标看成多项式的指数,然后再对应相乘相加就可以了,注意系数超过8位 将超八位的补分进位。

#include #include #include #include using namespace std;typedef long long LL;struct BigInteger{  static const int BASE = 100000000;  static const int WIDTH = 8;  vector s;   BigInteger operator = (const string& str){    s.clear();    int x, len=(str.length()-1)/WIDTH+1;    for(int i=0;is.size(),lenb=b.s.size(),lenc=lena+lenb-1;    LL *buf =new LL[lenc+1];    for(int i=0;is[i])*((LL)b.s[j]);        buf[i+j+1]+=buf[i+j]/BASE;        buf[i+j]=buf[i+j]%BASE;      }    for(int i=0;i=0;i--){    int buf=b.s[i],h=8;    while(buf>0){buf/=10;h--;}    for(int j=0;j

关于C++中怎么实现一个大整数乘法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页名称:C++中怎么实现一个大整数乘法
转载源于:http://bzwzjz.com/article/jpcgee.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作公司 网站设计 成都企业网站制作 网站建设公司 重庆企业网站建设 营销型网站建设 成都做网站建设公司 成都品牌网站建设 成都网站建设 梓潼网站设计 响应式网站建设 企业网站设计 专业网站建设 成都网站建设流程 成都网站设计 企业网站建设公司 网站制作公司 外贸网站建设 外贸营销网站建设 成都网站设计 成都商城网站制作 成都网站制作