第一眼觉得这题很水,简简单单的编了一下提交了,竟然WA了。实在有点打击我的自信心。想了一会儿,发现没有什么头绪,然后就看题解了。一看题解发现好容易,主要是输入的原因 比如如果输入100.000和100做比较,如果用字符串去获取的话得到的结果绝对不正确。因此此题需要做的是将得到的字符串的前面的零和后面的零加无用的小数点全部删除掉,再比较才能获得正确的结果。水题,水到这种程度也是醉了。我连水题多不会应该好好反思一下。我参考别人的代码写的题解供大家参考。
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
char A[100000],B[100000];
char temp[100000];
void change(char s[])
{
int i,len;
len = strlen(s);
//去掉后面的零
if(strstr(s,"."))
{
for(i = len-1; s[i] == '0'; i--)
{
s[i] = '\0';
len--;
}
}
if(s[len-1] == '.')
s[len-1] = '\0';
i=0;
while(s[i]=='0')i++;
strcpy(temp,s+i);
strcpy(s,temp);
}
int main()
{
while(scanf("%s%s",A,B)!=EOF)
{
change(A);
change(B);
if(strcmp(A,B))
printf("NO\n");
else
printf("YES\n");
}
return 0;
}