HDU 2054 A == B?
解题报告:
题目大意:输入两个数,判断这两个数是否相等,相等的话输出YES,不相等的话输出NO。
这题强烈建议不要浪费时间,太TM坑了,有些东西考虑了反而是错的,害的我搞了很久,还以为什么东西没考虑,原来考虑的东西越多就错的越离谱。首先要说明的是这里可能会是很大的数,直接定义int或__int64是不行的,必须要用数组模拟,考虑到小数点后六位。这里给几个测试数据和答案:
00 0
NO
0.0000 0
YES
0.00 0.000
YES
+0 0
NO
-0 0
NO
-0 +0
NO
0 0
YES
1 #include<cstdio> 2 #include<cstring> 3 char stra[100005],strb[100005]; 4 void yashuo(char *p) { 5 int len=strlen(p),local=len; 6 for(int i=0;i<len;++i) 7 if(p[i]=='.') 8 local=i; 9 for(int i=len-1;i>local;--i) 10 if(p[i]=='0') 11 len--; 12 if(p[len-1]=='.') 13 len--; 14 p[len]=NULL; 15 } 16 int main() { 17 while(scanf("%s%s",stra,strb)!=EOF) { 18 yashuo(stra); 19 yashuo(strb); 20 if(!strcmp(stra,strb)) 21 printf("YES\n"); 22 else 23 printf("NO\n"); 24 } 25 return 0; 26 }