杭电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;

}

 

你可能感兴趣的:(杭电)