感动要哭 撸了一个半小时的重载预算符高精
撸了一个半小时代码,没玩守望(垃圾游戏毁我青春五个金牌都带不起队友)最后编译出312个错误。吓我,然而改了几个地方就直接过了直接过了直接过了,目前还是不明白ostream,istream的用处,上网才搞定的。只写了加与乘还有比较。其他后面加吧。减法跟除都很恶心。。。。
代码如下:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define maxn 5000 6 using namespace std; 7 struct SPH{ 8 int len,s[maxn]; 9 SPH(){ 10 memset(s,0,sizeof(s)); 11 len=1; 12 } 13 SPH operator = (const char* num) 14 { 15 len=strlen(num); 16 for(int i=0;i<len;++i) s[i]=num[len-i-1]-48; 17 return *this; 18 } 19 SPH operator=(const int num){ 20 char a[maxn]; 21 sprintf(a,"%d",num); 22 *this=a; 23 return *this; 24 } 25 SPH (const int num){ *this=num; 26 } 27 SPH (const char * num){ *this=num; 28 } 29 SPH operator+(const SPH & a) 30 { 31 SPH c; 32 c.len=max(len,a.len)+1; 33 int x=0; 34 for(int i=0;i<c.len;++i) 35 { 36 c.s[i]=s[i]+a.s[i]+x; 37 x=c.s[i]/10; 38 c.s[i]=c.s[i]%10; 39 } 40 if(c.s[c.len-1]==0) --c.len; 41 return c; 42 } 43 SPH operator+=(const SPH & a){ 44 *this=*this+a; 45 return *this; 46 } 47 SPH operator*(const SPH & x){ 48 SPH c; 49 c.len=len+x.len; 50 for(int i=0;i<len;++i){ 51 for(int j=0;j<x.len;++j){ 52 c.s[i+j]+=s[i]*x.s[j]; 53 c.s[i+j+1]+=c.s[i+j]/10; 54 c.s[i+j]%=10; 55 } 56 57 } 58 if(c.len-1) --c.len; 59 return c; } 60 SPH operator *=(const SPH & a){ 61 *this=*this * a; 62 return *this; 63 } 64 bool operator < (const SPH & x) const{ 65 if(len !=x.len) return len<x.len; 66 for(int i=len-1;i>=0;i--){ 67 if(s[i]!=x.s[i]) return s[i]<x.s[i]; 68 } 69 return false;} 70 bool operator >(const SPH & x) const {return x<*this;} 71 bool operator <=(const SPH & x) const {return !(x<*this);} 72 bool operator >=(const SPH & x) const {return !(x>*this);} 73 bool operator ==(const SPH & x) const {return !(x<*this||x>*this);} 74 bool operator !=(const SPH & x) const {return x<*this||x>*this;} 75 }; 76 ostream& operator << (ostream &out,const SPH& x){ 77 for(int i=x.len-1;i>=0;i--) 78 cout<<x.s[i]; 79 return out; 80 } 81 istream& operator >> (istream &in,SPH& x) 82 { 83 char num[maxn]; 84 in>>num; 85 x=num; 86 return in; 87 } 88 89 int main() 90 { 91 SPH n,m,sum; 92 cin>>n>>m; 93 sum=n+m; 94 cout<<sum<<" "; 95 sum=n*m; 96 cout<<sum; 97 return 0; 98 }
转载于:https://www.cnblogs.com/srpihot/p/6379910.html
感动要哭 撸了一个半小时的重载预算符高精相关推荐
- 马云缺席的一个半小时,李彦宏和马化腾都聊了什么
马云缺席的一个半小时,李彦宏和马化腾都聊了什么 搜狐IT 文/杨舒芳 今天上午,科技圈儿的一个大party,IT领袖峰会又嗨起来了.一个传统是,BAT大佬们同台对话,但是今年马云在北京玩着,所以 ...
- 2012 苏州瑞晟微电子 面试(共两轮,每次近一个半小时)
期待已久的苏州瑞晟微电子终于来了.面试一共两轮,之前笔试过,但他们公司参考笔试的成分只有10%不到,很看重个人的能力,不愧是台湾同胞开的公司啊,很人性化.面试官都是从台湾来的. 就是今年他们怎么面试这 ...
- 分布式id生成策略,我和面试官扯了一个半小时
面试官:小伙子,你还记得我吗?我是上次面试你的那个面试官. 我心想:我去,怎么会不记得,我又不是青年痴呆,上次害我画了那么多图,还使劲敲了一个多钟的电脑,满脑子都是你的阴影. 我:记得记得,您好,很高 ...
- 6位顺序号生成_分布式id生成策略,我和面试官扯了一个半小时
一.分布式系统带来ID生成挑战 在分布式系统中,往往需要对大量的数据如订单.账户进行标识,以一个有意义的有序的序列号来作为全局唯一的ID. 而分布式系统中我们对ID生成器要求又有哪些呢? 全局唯一性: ...
- 第六周作业完成,一个半小时
一.JDBC ORM 对象和关系数据库的映射 个人看了之后认为这个知识点可能再jdbc中是最重要的知识点之一,毕竟之前的sql语句的插入仅仅只是利用eclipse简单操作数据库,而ORM才可以真正称得 ...
- 快速批量一个半小时插入1亿条数据到mysql
先造数据写入txt,然后使用mysql的load data infile来直接将txt中的数据导入表中 #!/bin/bash for a in {1..12} do date echo ${a}be ...
- 【无标题】写了一个半小时才写这么一点,是不是我能力不行呀?而且暗亮边框还显示不出来,害
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...
- 手机测试充电宝软件,记者随机测试5款产品 “有共享充电宝半小时只充了11%”...
原标题:记者随机测试5款产品 "有共享充电宝半小时只充了11%" 不同品牌的共享充电宝,充电速度差异较大. /晨报记者 潘 文 "花了3块钱,充了半小时,手机只充了11% ...
- 随机数抽奖程序 html,半小时撸一个抽奖程序
需求总是很紧急,昨天正在开会收到人力需求,有时间做个抽奖吗?(now 下午四点12,年会五点开始.)还没能等我拒绝,人事又补了一句做不出来我们就不抽奖了,我擦瞬间感觉要是搞不出来会被兄弟们捅死的节奏, ...
最新文章
- 【转载】Asp.Net 全生命周期
- mysql用外键链接两个表_可能做一个MySQL外键的两个可能的表之一?
- 在JAVA中线程到底起到什么作用
- 算法---------数组-----------翻转单链表
- SCRIPT LOAD lua文件
- mysql 1280_mysql基础
- 题目1169:比较奇偶数个数
- Codeforces 448C Painting Fence:分治
- SAP Spartacus使用cxComponentWrapper测试MiniCart
- VSAN 个版本对应vSphere版本
- 时间+地区 选择器
- c语言怎样设计程序界面,「分享」C语言如何编写图形界面
- Android 加载网页进度条
- 车型代号对照表_2017年最新主机厂OEM车型代号对照表
- 翻译如重构,期待您的单元测试
- deep-daze给你一个五彩斑斓的黑
- 概率论的学习和整理--番外8:3门问题 (Monty Hall problem)
- Linux学习笔记-RH135之Apache的管理及优化
- No core dump will be written. Minidumps are not enabled by default on client versions of Windows
- 免费字体下载(不定时更新)