题目大意:判断两个数是否相等。
思路:需要判断正负号以及前导0、小数点后面的0等等。。。
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <iostream>
#include <cmath>
using namespace std;
void del_1(string &str)
{
int flag1 = 0;
int flag2 = 0;
if(str[0] == '-')
{
flag1++;
flag2 = flag1;
}
while(str[flag1] == '0')
flag1++;
str.erase(flag2, flag1-flag2);
}
void del_2(string &str)
{
int len = str.length()-1;
while(str[len] == '0')
len--;
while(str[len] == '.')
len--;
str.erase(len+1);
}
int main()
{
string a, b;
while(cin >> a >> b)
{
int len1 = a.length();
int len2 = b.length();
if(a[0] == '+')
a = a.substr(1, len1);
if(b[0] == '+')
b = b.substr(1, len2);
del_1(a);
del_1(b);
for(int i = len1; i >= 0; i--)
{
if(a[i] == '.')
{
del_2(a);
break;
}
}
for(int i = len2; i >= 0; i--)
{
if(b[i] == '.')
{
del_2(b);
break;
}
}
//cout<<a<<" "<<b<<endl;
if(a == b || (a[0] == '-') || (b[0] == '-'))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}