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

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值