HDU2054---A==B?
2017-02-05 08:07
204 查看
#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; }
相关文章推荐
- HDU2054(大数的处理)
- hdu2054
- HDU2054 A==B------ [NWPU][2018寒假作业][通用版]一、热身 [Cloned]Y题
- 【坑】HDU2054 A==B?
- HDU2054(水题---这题有毒=_=)
- hdu2054
- hdu2054 A == B ?【大数】
- A == B ?(HDU2054)
- HDU2054
- hdu2054 A == B ?(高精度比较)
- HDU2054
- hdu2054
- HDU2054 A == B ? 模拟题
- hdu2054 不要想太多,这就一水题
- hdu2054 A == B ? (大数)
- HDU2054:A == B ?
- HDU2054 A == B ?【大数】
- HDU2054
- hdu2054 A == B ?
- HDU2054 A == B?