【SZUOJ】【高精度板子】E. 大整数计算(运算符重载)

被学校oj的高精度恶心到了,所以我觉得以后把它当板子

//??CBigInteger?????
/********** Write your code here! **********/
#include<bits/stdc++.h>
using namespace std;
class CBigInteger
{
public:vector<int> a;int si;CBigInteger(){si=1;}CBigInteger(vector<int> t,int s){si=s;a=t;}CBigInteger(int x){a.clear();si=x;}void sets(int x){si=x;}CBigInteger add(CBigInteger x,CBigInteger y,int s){int n=max(x.a.size(),y.a.size());vector<int> p(n);for(int i=0; i<n; i++){if(i<x.a.size()) p[i]+=x.a[i];if(i<y.a.size()) p[i]+=y.a[i];}for(int i=0; i<n-1; i++){p[i+1]+=p[i]/10;p[i]%=10;}if(p.size()==0) return CBigInteger(p,s);while(p[p.size()-1]>9){p.push_back(p[p.size()-1]/10);p[p.size()-2]%=10;}return CBigInteger(p,s);}CBigInteger minus(CBigInteger x,CBigInteger y,int s){int n=max(x.a.size(),y.a.size());vector<int> p(n);for(int i=0; i<n; i++){if(i<x.a.size()) p[i]+=x.a[i];if(i<y.a.size()) p[i]-=y.a[i];}for(int i=0; i<n-1; i++){if(p[i]<0){p[i+1]--;p[i]+=10;}}if(n==0) return CBigInteger(p,s);if(p[n-1]<0){return minus(y,x,-s);
//			vector<int> q(n);
//			q[n-1]=-p[n-1];
//			p.pop_back();
//			return minus(CBigInteger(q,1),CBigInteger(p,1),-s);}return CBigInteger(p,s);}CBigInteger operator + (CBigInteger t){if(si==1){if(t.si==1) return add(*this,t,1);else return minus(*this,t,1);}else{if(t.si==-1) return add(*this,t,-1);else return minus(*this,t,-1);}}CBigInteger operator - (CBigInteger t){if(si==1){if(t.si==1) return minus(*this,t,1);else return add(*this,t,1);}else{if(t.si==-1) return minus(*this,t,-1);else return add(*this,t,-1);}}CBigInteger mul(CBigInteger x,int y,int num){vector<int> p;for(int i=1; i<=num; i++) p.push_back(0);for(int i=0; i<x.a.size(); i++){p.push_back(x.a[i]*y);}return CBigInteger(p,1);}CBigInteger operator * (CBigInteger t){CBigInteger p(si*t.si);for(int i=0; i<t.a.size(); i++){p=p+mul(*this,t.a[i],i);}p.si=si*t.si;return p;}friend istream& operator >> (istream &in,CBigInteger &c);friend ostream& operator << (ostream &out,const CBigInteger &c);
};
istream& operator >> (istream &in,CBigInteger &c)
{string s;cin>>s;int now=0;if(s[now]=='-'){c.sets(-1);now++;}else c.sets(1);c.a.clear();while(now<s.size()){c.a.push_back(s[now]-'0');now++;}reverse(c.a.begin(),c.a.end());while((!c.a.empty())&&c.a.back()==0) c.a.pop_back();return in;
}
ostream& operator << (ostream &out,const CBigInteger &c)
{bool bz=0;vector<int> p=c.a;while((!p.empty())&&p.back()==0) p.pop_back();if(p.size()==0){cout<<0;return out;}if(c.si==-1) bz=1;if(bz) cout<<"(-";for(int i=p.size()-1; i>=0; i--) cout<<p[i];if(bz) cout<<")";return out;
}/*******************************************/
int main()
{int t;char op;CBigInteger bigNum1;CBigInteger bigNum2;cin >> t;while(t--){cin >> bigNum1 >> op >> bigNum2;cout << bigNum1 << " " << op << " " << bigNum2 << " = ";if(op == '+')cout << bigNum1 + bigNum2 << endl;else if(op == '-')cout << bigNum1 - bigNum2 << endl;else if(op == '*')cout << bigNum1 * bigNum2 << endl;}return 0;
}

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

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

相关文章

用自然语言连接信息孤岛

信息孤岛互联互通的困难 尽管已经进入了互联网时代&#xff0c;信息系统中的信息孤岛现象仍然十分地严重&#xff0c;不同部门&#xff0c;不同机器之间难以实现信息的互联互通。存在大量的信息孤岛。 不同信息系统的相互通信依赖通信协议和数据模型的定义&#xff0c;前者决定…

上海安全员C证继续教育题库(附答案)

1.从业人员经过安全教育培训&#xff0c;了解岗位操作规程&#xff0c;但未遵守而造成事故的&#xff0c;行为人应负( )责任&#xff0c;有关负责人应负( )责任。 A.直接 间接 B.直接 领导 C.间接 管理D.直接 管理 2.对生产附着式升降脚手架产品的单位&#xff0c;必须…

Java数据结构与算法(买卖股票最佳时机​)

前言 买卖股票最佳时机和最长子数组和类似。暴力算法和动态规划算法几乎如出一辙。一个是前序和小于零时重置当前值&#xff0c;一个是最小值小于当前值时重置为最小值。需关注重置的计算规则和标志。 买卖股票对应leetcode . - 力扣&#xff08;LeetCode&#xff09; 实现…

一定要了解的 WordPress 数据库中默认 12 个表

WordPressan 安装的时候会有 12 张默认的数据表,每张表的数据都包含了 WordPress 不同的功能。看看这些表的结构,你能很容易的了解网站不同的部分都是存在哪里的。目前,默认的 WordPress 安装会创建如下的数据表。 注意:每张表名前面的 wp_ 是你在安装过程中选择的数据库前…

LeetCode 9 - 回文数

给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&#xff0c;而…

【IoT NTN】3GPP R18中关于各类IoT设备在NTN中的增强和扩展

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

vue调用百度api时跨域问题的解决方案

最近在开发一个基于百度图片文字识别的功能&#xff0c;本来在后端调用百度api的接口&#xff0c;功能已经完成了&#xff0c;但是由于后端服务器不能访问外网&#xff0c;所以将调用百度api的功能需要移到前端&#xff0c;于是就一个坑接一个坑&#xff0c;好不容易开发完成&a…

Flink 入门案例介绍

一、工程搭建 在 IDEA 中创建一个 Maven 工程&#xff1a;FlinkTutorial 在 pom 文件中引入依赖&#xff1a; <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.10.1…

SAP ABAP 往数据库表里加数据

目录 方法一&#xff1a;SE16N SE11 方法二&#xff1a;创建维护VIEW&#xff1a;SE11 SM30 Error补充说明&#xff1a; 方法一&#xff1a;SE16N SE11 首先SE16N 进来。 进来之后在テーブル的位置输入表名&#xff0c;然后点击执行&#xff08;F8&#xff09; 如果第一次…

spring 解决循环依赖

在 spring 框架中&#xff0c;我们知道它是通过三级缓存来解决循环依赖的&#xff0c;那么它具体是怎么实现的&#xff0c;以及是否必须需要三级缓存才能解决循环依赖&#xff0c;本文来作相关介绍。 具体实现 先来看看它的三级缓存到底是什么&#xff0c;先看如下代码&#…

Unity动画录制工具在运行时录制和保存模型骨骼运动的方法录制动画给其他角色模型使用支持JSON、FBX等格式

如果您正在寻找一种在运行时录制和保存模型骨骼运动的方法&#xff0c;那么此插件是满足您需求的完美解决方案。 实时录制角色运动 将录制到的角色动作转为动画文件 将录制好的动作给新的角色模型使用&#xff0c;完美复制 支持导出FBX格式 操作简单&#xff0c;有按钮界面…

selenium的使用教程

Selenium简介 Selenium是一个用于Web应用程序自动化测试工具。它支持多种浏览器&#xff0c;可以录制、编辑和运行自动化测试。通过Selenium&#xff0c;我们可以编写脚本来模拟用户在浏览器中的操作&#xff0c;从而进行功能测试。 二、安装与配置 安装Selenium库 使用pip安…

unity中通过实现底层接口实现非按钮(图片)的事件监听

编写监听脚本 PEListenter 继承自MonoBehaviour类&#xff0c;并实现了IPointerDownHandler、IPointerUpHandler和IDragHandler接口&#xff0c;按照需求定义需要接收事件&#xff08;鼠标按下、抬起、拖拽&#xff09;的回调函数 //监听类&#xff08;需要挂载在物体上面&am…

关于AD9777芯片的说明以及FPGA控制实现 I

关于AD9777芯片的说明以及FPGA控制实现 I 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 关于AD9777芯片的说明以及FPGA控制实现 I一、引言二、AD9777主要特色1. 高分辨率和高速数据率:2. 可编程插值滤波器:3. 数字正交调制能力:4. 低功耗:5. SPI接口:6. 内…

【机器学习】我们该如何评价GPT-4o?GPT-4o的技术能力分析以及前言探索

目录 &#x1f926;‍♀️GPT-4o是什么&#xff1f; &#x1f68d;GPT-4o的技术能力 1. 自然语言理解 2. 自然语言生成 3. 对话系统 4. 语言翻译 5. 文本纠错 6. 知识问答 7. 定制和微调 8. 透明性和可解释性 9. 扩展性 &#x1f690;版本对比分析 1. GPT-4标准版 …

像素蛋糕Photoshop颜色导出不一致问题分析与解决

问题点&#xff1a;发现用像素蛋糕修完图明天应该为最右边图片显示 模特应该是白皙的&#xff0c;但是导出图片无论是否勾选SRGB都表现的为种间图片颜色一样 饱和度巨高。 问题分析&#xff1a;那这一定是颜色配置文件出现问题&#xff0c;找到客服表示可以去PS打开看是否与预…

Linux之进程信号详解【上】

&#x1f30e; Linux信号详解 文章目录&#xff1a; Linux信号详解 信号入门 技术应用角度的信号 信号及信号的产生       信号的概念       信号的处理方式 信号的产生方式         键盘产生信号         系统调用产生信号         软件…

P1072 [NOIP2009 提高组] Hankson 的趣味题

Hankson 的趣味题 这题要有思维&#xff01;对。数论&#xff01;最大公约数与最小公倍数。 用LaTex写公式&#xff0c;真的麻烦&#xff01;wcnmd!,,,,,,be---- 于是我用手写了&#xff1a; 大功告成&#xff01;上马&#xff01; #include<cstdio> using namespace …

国产大模型

层出不穷的大模型产品&#xff0c;你怎么选&#xff1f; 国产大模型的发展历史可以大致分为以下几个阶段&#xff1a; 起步阶段&#xff1a; 起始时间&#xff1a;早期阶段&#xff0c;国产大模型的发展较为缓慢&#xff0c;但已有企业开始探索相关领域。重要事件&#xff1a;…

MyBatis插件机制

MyBatis插件机制是该框架提供的一种灵活扩展方式&#xff0c;允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。这种机制主要通过拦截器&#xff08;Interceptor&#xff09;实现&#xff0c;使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。 …