HDU ACM 2054 A == B ? 水题

来源:互联网 发布:网页设计 软件 编辑:程序博客网 时间:2024/06/03 19:42

分析:水题,主要是要注意几个细节。


#include<iostream>using namespace std;char a[100005],A[100005];char b[100005],B[100005];void Process(char* p,int count,char* p2){int pos;bool is_real;int i=0,k=0,j;label:while(*(p+i)!='\0' && *(p+i)=='0')i++;if(*(p+i)=='\0'){p2[0]='0',p2[1]='\0';return ;  //为0}if(*(p+i)=='-'){p2[k++]='-';i++;goto label;}if(*(p+i)=='+'){i++;     //处理正数goto label;}while(*(p+i)!='\0' && *(p+i)!='.') p2[k++]=p[i],i++;if(*(p+i)=='\0'){p2[k]='\0';return ;}is_real=false;for(j=count-1;j>i;j--)if(is_real || p[j]!='0'){if(!is_real) pos=j;p2[k+j-i]=p[j];is_real=true;}if(!is_real)p2[k]='\0';elsep2[k]='.',p2[k+pos-i+1]='\0';}bool IsEqual(){Process(a,strlen(a),A);Process(b,strlen(b),B);if(!strcmp(A,B)) return true;else return false;}int main(){while(scanf("%s %s",a,b)==2){if(IsEqual()) cout<<"YES"<<endl;else cout<<"NO"<<endl;}    return 0;}


0 0
原创粉丝点击