十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了怎么在C++中实现string的乘法运算,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联-专业网站定制、快速模板网站建设、高性价比岳普湖网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式岳普湖网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖岳普湖地区。费用合理售后完善,十余年实体公司更值得信赖。
项目要点
1.大数指的是远超long long int的数据
2.将大数用矩阵进行存储,并通过矩阵实现运算
3.本人采用字符串进行存储,应注意char的特点
比如:char a=161;
cout<<(int)a;
此时会输出-95,而不是161,char类型首个比特位是作为正负号的
乘法,此处为整数乘法,正整数,负整数,0均可,主要思想就是乘法的笔算方法
运行截图及代码如下:
#include#include #include using namespace std; #define n 10 string dezero(string a)//用来去掉正数前面的0,也就是说可以输入000001类似这样的数字 { long int i; for(i=0;i 48) break; } if(i==a.length()) return "0"; a.erase(0,i); return a; } string multiply(string a,string b)//整数 { long int i,j,k,yao=0,kai; string c1,c2; string c3=a+b; if(a.at(0)=='-') { a.erase(0,1); yao++; } if(b.at(0)=='-') { b.erase(0,1); yao++; } a=dezero(a); b=dezero(b); if(a.at(0)==48||b.at(0)==48) return "0"; if(a.length()>b.length()) { c1=a; c2=b; } else { c1=b; c2=a; } reverse(c1.begin(),c1.end()); reverse(c2.begin(),c2.end()); for(i=0;i =48&&c2.at(i)<=57) c2.at(i)-=48; if(c2.at(i)>=97&&c2.at(i)<=122) c2.at(i)-=87; } for(i=0;i =48&&c1.at(i)<=57) c1.at(i)-=48; if(c1.at(i)>=97&&c1.at(i)<=122) c1.at(i)-=87; } for(i=0;i =n) { c3.at(k+1)+=c3.at(k)/n; c3.at(k)=c3.at(k)%n; } else { break; } } } } for(i=c3.length()-1;i>=0;i--) { if(c3.at(i)>0) break; } c3.erase(i+1,c3.length()); for(i=0;i =10) c3.at(i)+=87; if(c3.at(i)<10) c3.at(i)+=48; } reverse(c3.begin(),c3.end()); if(yao==1) c3="-"+c3; return c3; } int main() { string a,b; while(cout<<"input:"&&cin>>a>>b) { cout<<"output:"< 上述内容就是怎么在C++中实现string的乘法运算,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
名称栏目:怎么在C++中实现string的乘法运算
分享URL:http://mswzjz.cn/article/pscjij.html