您的位置:首页 > 其它

hdu 2054 A == B ? 坑人的题目

2013-09-19 01:53 197 查看
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
#define LL __int64
const int maxn=100001;
char a[maxn],b[maxn],c[maxn],d[maxn];
int main()
{
    while(cin>>a>>b)
    {
        int i,j,k,n,p,st,en,t;
        n=strlen(a);
        p=-1;
        for(i=0;i<n;i++)
            if(a[i]=='.'){p=i;break;}
        st=0;
        while(a[st]=='0')st++;
        en=n-1;
        if(p!=-1)
        {
            while(a[en]=='0')en--;
            if(en==p)en--;
        }
        t=0;
        for(i=st;i<=en;i++)
            c[t++]=a[i];
        c[t]='\0';
        n=strlen(b);
        p=-1;
        for(i=0;i<n;i++)
            if(b[i]=='.'){p=i;break;}
        st=0;
        while(b[st]=='0')st++;
        en=n-1;
        if(p!=-1)
        {
            while(b[en]=='0')en--;
            if(en==p)en--;
        }
        t=0;
        for(i=st;i<=en;i++)
            d[t++]=b[i];
        d[t]='\0';
        if(strcmp(c,d)==0)cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
}
/*
    坑人的题目,没告诉我数字长度,我以为是普通的数字比较。。
    更坑人的是知道是很长,竟然还要考虑前导零和小数后缀零。。都没说明啊。。
    更更坑人的是在hdu上交C++已知RE,why???,后来用G++过的。。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: