博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2054 不要想太多,这就一水题
阅读量:4973 次
发布时间:2019-06-12

本文共 1260 字,大约阅读时间需要 4 分钟。

我早该想到这是一道水题,因为这道题在杭电OJ题库的第11页,这一页基本上全是水题。。。但是看讨论区,大家实在想的太多了,没那么复杂。。

题目是比较两个数是否相等,当然也不是直接用等于号=比较两个整型这么简单。因为这也是一道大数题,不过大家也完全没有必要想的太多!!!我在wa了之后变去讨论区看了这题该注意的情况,里面好多人讲了好多种要注意的情况,我尝试着都考虑到程序里,结果换来了更多的WA,确实考虑很多情况,写个完善的代码比较困难的。但是后来里面有人提到了大家都想的得太多了!!!我就试着按他的考虑不多的情况去考虑,结果就AC了。。强烈建议大家注意的地方:

  • 只需考虑小数点后有多个0的情况,比如1.000 和 1比较
  • 不需要考虑前导0,即不会出现0000100
  • 不需考虑正负号,即只有无符号数
  • 不会出现这种 .100 这种逆天的数据,即不可能小数点开头
#include
using namespace std;#include
void trim0(string& b){ int len = b.length(); if(b.find('.')!=string::npos) { for(int i=len-1;b[i]=='0';i--) len--; b=b.substr(0,len); } if(b[len-1]=='.') b=b.substr(0,len-1);}void main(){ string a,b; while(cin>>a>>b) { trim0(a); trim0(b); if(a==b) cout<<"YES"<
可以用这题来熟悉一下string类型的操作,c++中的字符串string的本质也是STL中的容器。和其他容器有很多相同的方法,也有push_back、clear这种。而且string提供了较为丰富的函数。我这里只用到了两个。
find()方法:查找字符串中是否含有某一字符。也有一个重载方法可以用来查找字符串。如果找不到不是返回-1,而是返回一个static成员-------string::npos;
substr()方法:顾名思义,就是用来截取子串的。以前只知道Java中的String有subString方法可以截取子串,却不在c++的String也有。汗颜。
substring(i);会从下标为i的位置截取到末尾,注意下标从0算起。
substring(a,b);会从下标为a的位置截取,b是要截取的长度。貌似大多数语言里面截取子串都是这样的。并不是使用首末位置的下标。
比如:
s=“12345”;s.substring(3);//那么返回值是“45”s.substring(0,3);//那么返回值是“123”
注意截取子串操作对于原字符串不会产生影响!

转载于:https://www.cnblogs.com/unclejelly/p/4082084.html

你可能感兴趣的文章
X86系列CPU 注记(二)
查看>>
一个简单的消息处理框架
查看>>
RTSP会话基本流程
查看>>
C++——OOP面向对象理解
查看>>
[系统]archlinux的glibc又调皮了……
查看>>
使用 Vue.js 和 Chart.js 制作绚丽多彩的图表
查看>>
内置函数
查看>>
mysql 5.6二进制安装
查看>>
c#调用c++ dll(二)
查看>>
XXS level10
查看>>
20175301 实验五《网络编程与安全》实验报告
查看>>
window下的run命令行解释 - 转
查看>>
android 数据存储方式
查看>>
第一次作业
查看>>
SQL中的escape的用法
查看>>
C#之结束指定进程!...
查看>>
CV特征提取:
查看>>
虚拟机极简配置manjaro gnome
查看>>
Linux配置成网关
查看>>
【Yii】数据库读写方法:AR模型和DAO方法
查看>>