运行结果:

代码如下:

#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
using namespace std;class BigInteger
{
public:    string value;//重载为成员函数格式string operator*(const BigInteger &v){string a=this->value;string b=v.value;int lengthA,lengthB,aInt[205],bInt[205],mul[205]={0},mark,start;reverse(a.begin(),a.end());reverse(b.begin(),b.end());lengthA=a.length();lengthB=b.length(); for(int i=0;i<lengthA;i++){aInt[i]=(int)(a[i]-'0');}for(int i=0;i<lengthB;i++){bInt[i]=(int)(b[i]-'0');}//开始相乘 for(int i=0;i<lengthA;i++){for(int j=0;j<lengthB;j++){mul[i+j]+=aInt[i]*bInt[j];}}//处理for(int i=0;i<lengthA+lengthB;i++){mul[i+1]+=(int)mul[i]/10;mul[i]=mul[i]%10;} //结果转化成字符串char mulChar[205];mark=204;while(mul[mark]==0)mark--;start=0;for(int i=mark;i>=0;i--){mulChar[start]=(char)(mul[i]+'0');start++;}mulChar[start]='\0';return (string)mulChar;}//高精度加法string operator+(const BigInteger &v){string a=this->value;string b=v.value;int lengthA,lengthB,aInt[255]={0},bInt[255]={0},plus[255]={0};reverse(a.begin(),a.end());reverse(b.begin(),b.end());lengthA=a.length();lengthB=b.length();for(int i=0;i<lengthA;i++){aInt[i]=(int)(a[i]-'0');}for(int i=0;i<lengthB;i++){bInt[i]=(int)(b[i]-'0');}//开始相加for(int i=0;i<255;i++){plus[i]=aInt[i]+bInt[i];} // 处理for(int i=0;i<250;i++){plus[i+1]+=(int)plus[i]/10;plus[i]=plus[i]%10;} //把结果转化成字符串char plusChar[255];int mark=254;while(plus[mark]==0)mark--;int start=0;for(int i=mark;i>=0;i--){plusChar[start]=(char)(plus[i]+'0');start++;} plusChar[start]='\0';return (string)plusChar;} //高精度判断 bool operator ==(const BigInteger &v){string a=this->value;string b=v.value;string str1="true";string str2="false"; return a==b;}//高精度减法 bool operator -(const BigInteger &v){string a=this->value;string b=v.value;int lengthA,lengthB,aInt[205],bInt[205],mul[205]={0},mark,start;reverse(a.begin(),a.end());reverse(b.begin(),b.end());lengthA=a.length();lengthB=b.length(); for(int i=0;i<lengthA;i++){aInt[i]=(int)(a[i]-'0');}for(int i=0;i<lengthB;i++){bInt[i]=(int)(b[i]-'0');}}};int main()
{BigInteger a, b;while(true){string str;cin>>str;//寻找执行什么操作for(int i=0;i<str.length();i++){if(str[i]=='*'){a.value=str.substr(0,i);b.value=str.substr(i+1,str.length());cout<<a*b<<endl;    // 优先用成员函数break;}if(str[i]=='+'){a.value=str.substr(0,i);b.value=str.substr(i+1,str.length());cout<<a+b<<endl;    // 优先用成员函数break;}if(str[i]=='='){a.value=str.substr(0,i);b.value=str.substr(i+2,str.length());if(a==b)cout<<"true"<<endl;elsecout<<"false"<<endl;break;}}}return 0;
}

用C++的类重载高精度加法,乘法和等于符号相关推荐

  1. (压位)高精度乘法,高精度加法,高精度减法,高精度除法

    大值 乘 大值: 题目链接:https://www.luogu.com.cn/problem/P1303 # include <iostream> # include <string ...

  2. 高精度加法 高精度减法 高度除法 高精度乘法 方法总结

    一.引言 对于数字的储存,用实数类型总会有一些不足,比如: 使用int 只能最多存储4个字节,范围也就是2的32次方: 使用double 只能最多储存8字节,就是2的64次方: 如果数字超过这个限制, ...

  3. 试解PTA《20211122-函数基础练习》,涉及 高精度加法 和 10进制转换成2-16进制问题,有需要的同学来看看吧;

    目录 一.前言 二.例题部分 2.1.进制转换 2.1.1.题解1 2.1.2.题解2 2.2. 函数返回一个整数的反序数 (20 分) 2.2.2 题解 2.3. 大整数A+B (10 分) 2.3 ...

  4. CCF NOI1138 高精度加法

    问题链接:CCF NOI1138 高精度加法. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 给两个正整数,计算它们的和. 输入 两行,每行表示一个数(位数达10000位). ...

  5. 高精度加法(C语言实现)

    高精度,是学C语言漫长的路上必须要学的一类程序 >>>高精度模板( 加,减,乘低精高精,除低精高精(有余数),高精阶乘(200000以内) ) (C语言实现)(注释多多)<&l ...

  6. C++编程练习:计算长方体体积、对象数组求学生成绩最高者、销售应用问题、重载复数加法运算

    目录 一.需要求3个长方体的体积,请编一个基于对象的程序.数据成员包括length(长).width(宽).height(高).要求同成员函数实现以下功能. 二.建立一个对象数组,内放5个学生的数据( ...

  7. 高精度加法【c++实现】

    其他高精度算法如下: 高精度减法[c++实现] 高精度乘法[c++实现] 高精度除法[c++实现] ------------------------------ 说在前面: 众所周知 int,long ...

  8. 蓝桥杯-阶乘运算和高精度加法(Java)

    蓝桥杯-阶乘运算和高精度加法(Java) 因为我感觉这两种题型都是对高精度的考察,都可以用数组代替整形进行数字运算,所以我把这两种题型放在一起了. 阶乘运算 先看一下题目 解这种题目目前我知道的有两种 ...

  9. 高精度算法——高精度加法

    说明: 高精度可以说除了排序算法以外接触到的第一个算法了,反正我是这样的,高精度主要是用在c/c++,因为Python 是默认无限大的,所以不需要用高精度,JAVA是有库可以调用也是不需要用高精度,其 ...

最新文章

  1. cocos code ide 导入cocos2d-js自带的实例
  2. 全球及中国生物质能利用产业现状调研及十四五建设布局规划报告2021-2027年
  3. 面试系列-SpringMVC那些事(一)
  4. Solaris的硬件相关命令
  5. WebSite和Web Application\网站与Web项目的区别
  6. 预算里怎样计算机械作业费,用实物法编制施工图预算的完整步骤有( )等。 A.计算工程量B.套用预算人工、材料、机械 - 作业在线问答...
  7. python电商用户购买力分析_Python + pandas + 不同客户购买力图形显示
  8. 将 SharePoint 2010 网站集升级到 2013 (含沙盒方案)
  9. ajax 怎么添加,添加功能(Ajax版)
  10. mysql银行储蓄额度格式_mysql创建表用于银行储蓄系统
  11. 《编码:隐匿在计算机软硬件背后的语言》TXT
  12. 通达信 移动平均算法_通达信公式教程,建议收藏,关注「所有文章只发表一次」...
  13. 针孔监控摄像头检测神器!
  14. 网络编程之OSI七层模型,讲解tcp/ip五层涉及的网络协议,网络通信实现,结合协议来看网络通信流程...
  15. 龙果支付 mysql_开源版龙果支付系统-国内首款开源的互联网支付系统
  16. 谁教会老公出轨外面养情人
  17. 商标权的取得方式有哪些
  18. 电商运营指标体系梳理
  19. 鸭脚木开花 蜜蜂大搬家
  20. cocosc++怎么打印_c++打印api

热门文章

  1. Runloop - 运行循环
  2. To-do List
  3. Linux sar分析网卡流量
  4. Web API Test Client 1.2.0
  5. Atomikos 中文说明文档【转】
  6. CROC-MBTU 2012, Elimination Round (ACM-ICPC) 总结
  7. js div asp.net 实现漂浮图片,可以代码控制。
  8. 2008-07-29
  9. Android调试工具之ADB
  10. java储存学生档案应该注意事项_档案管理的注意事项有哪些