HDU2054---A==B?

    xiaoxiao2021-03-26  30

    #include <stdio.h> #include <string.h> const int MAX = 100010;//取太小过不了 int main() { char a[MAX]={},b[MAX]={}; while(~scanf("%s %s",a,b)){ int i=0,j=0,f=1; int p=strlen(a),q=strlen(b); int flag = 0;//标记是否含有小数点 for(i=0;i<p;i++) if(a[i]=='.') { flag = 1; break; } i = 0; p--; while(a[i]=='0')//A中从前往后找到第一个非零位置i i++; if(flag)//A中如果存在小数点,从后往前找到第一个非零位置 { while(a[p]=='0'){ p--; } } if(a[p]=='.')//A中如果第一个非零位置是“.”,再前移一位 p--; /*同A*/ flag = 0; for(j=0;j<q;j++) if(b[j]=='.') { flag = 1; break; } j = 0; q--; while(b[j]=='0') j++; if(flag) { while(b[q]=='0'){ q--; } } if(b[q]=='.') q--; if(p-i!=q-j)//如果A和B的字符长度不同,则A!=B,标记f = 0 f=0; for(;i<=p&&j<=q;i++,j++) { if(a[i]!=b[j])//如果A和B相应位置的字符不同,则A!=B,标记f = 0 { f=0; break; } } if(f) printf("YES\n"); else printf("NO\n"); memset(a,0,MAX*sizeof(char)); memset(b,0,MAX*sizeof(char)); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-659404.html

    最新回复(0)