Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
补充数据
005 5
NO
0.55 .55000
NO
不用考虑特殊情况
标准AC数据如下
555.000 5555
0.055 0.055000
/*hduoj 2054_cpp*/
#include <iostream>
#include <cstring>
using namespace std;
void delete_zero(char *a)
{
int len, i;
len = strlen(a) - 1; // 由于数组起始为0,故要减去1
for(i = len; i >= 0; i--)
{
if (a[i] == '0')
len--; //去掉小数点后的0
else
break;
}
if (a[len] == '.') //如果小数点后全是0,那小数点也得去掉
len--;
a[len+1] = '\0'; //通过加结束标志来去掉
}
int main()
{
int i, len;
char a[50000],b[50000];
while (cin >> a >> b)
{
len = strlen(a);
for( i = 0; i < len; i++)
{
if (a[i] == '.') //对有小数点的数据处理
delete_zero(a);
}
len = strlen(b);
for(i = 0; i < len; i++)
{
if (b[i] == '.')
delete_zero(b);
}
if (strcmp(a, b))
cout<< "NO"<< endl;
else
cout<< "YES"<< endl;
}
return 0;
}