模拟_大数字符串(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-- = '';
        if(*p == '.')        *p-- = '';
    }
    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
",!strcmp(pA,pB) ? "YES" : "NO");
    }
    
    return 0;
}
原文地址:https://www.cnblogs.com/lk1993/p/3227262.html