杭电2054
此题比较麻烦,主要在于所比较的两个数比较可能超出double等类型的正常范围,所以你只能选择字符数组来存放这些数字,同时请注意在字符数组中0011.0100和11.01是相等的!此外还应注意当其中一个数1.000这样的数时,不仅要去掉小数点后面的0还要把小数点也一定去掉!其中关于strchr的函数请参考http://www.cnblogs.com/xiohao/archive/2012/10/01/2709763.html!祝贺你轻松解决啊!呵呵!
#include<iostream>
#include<string.h>
using namespace std;
void B(char *Q)
{ char *p;
int n=strlen(Q);
p=Q+n-1;
if(strchr(Q,'.'))
while(*p=='0')
{*p='\0'; p--; }
if(*p=='.')
{ *p='\0'; }}
int main()
{ char *pa,*pb;
char a[101000],b[101000];
while(cin>>a>>b)
{ pa=a; pb=b; B(pa); B(pb);
while(*pa=='0') pa++;
while(*pb=='0') pb++;
if(strcmp(pa,pb)==0)
printf("YES"); else printf("NO"); printf("\n");
}
return 0;
}
联系方式
![](https://images.cnblogs.com/cnblogs_com/xiohao/429339/o_869851517382210591.png)