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 }
View Code

 

posted @ 2013-05-19 21:44  xiaxiaosheng  阅读(238)  评论(0编辑  收藏  举报