模拟_大数字符串(HDU_2054)
这道题以前写过,代码啰嗦,现重写
特殊情况:
1: 000 000000
2: +000 -00000
3: 000.00000 -000.00000
4: +000.00000 -000.00000
5: 0000123.4560000 -123.456
。。。。。
#include <stdio.h> #include <string.h> #define M 100000 char A[M],B[M]; void conv(char *&pD) { char flag = '*'; if(*pD == '+' || *pD == '-') { flag = *pD; pD++; } while(*pD == '0') pD++; int len = strlen(pD); char *p = pD + len - 1; if(strchr(pD,'.')) { while(*p == '0') *p-- = '\0'; if(*p == '.') *p-- = '\0'; } if(flag != '*' && pD == p) { pD--; *pD = flag; } } int main(int argc, char* argv[]) { #ifdef __MYLOCAL freopen("in.txt","r",stdin); #endif while(scanf("%s%s",A,B) != EOF) { char *pA = A; char *pB = B; conv(pA); conv(pB); printf("%s\n",!strcmp(pA,pB) ? "YES" : "NO"); } return 0; }