本文主要是介绍hdu2054A==B(水题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一眼觉得这题很水,简简单单的编了一下提交了,竟然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;
}
这篇关于hdu2054A==B(水题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!