题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054
![](https://img.haomeiwen.com/i8436231/8086d5af45951898.png)
一开始以为是道很简单的题,但交了几次WA,发现不简单。
得考虑以下几种情况:
1.所给的数很大,无法使用常规类型比较
2.小数化简
3.考虑正负号
4.正数前是否有多余的0(后发现实例并没有这种情况)
思路:
1.读取两个数字存入字符串a,b中
2.对于各字符串查找是否存在小数点,若存在则简化小数
3.对比两个处理后的字符串,输出答案
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a, b;
while (cin >> a >> b)
{
int l = a.length();
int ll = a.find('.');
if (ll != -1)
{
for (int i = l - 1; i >= ll; i--)
{
if (a[i] == '0' || a[i] == '.')
a.erase(i, 1);
else
break;
}
}
l = b.length();
ll = b.find('.');
if (ll != -1)
for (int i = l - 1; i >= ll; i--)
{
if (b[i] == '0' || b[i] == '.')
b.erase(i, 1);
else
break;
}
a == b ? cout << "YES" << endl : cout << "NO" << endl;
}
return 0;
}
网友评论