hdu 2054

Posted 庸人自扰扰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 2054相关的知识,希望对你有一定的参考价值。

Ps:WA了无数次,,简直成了心病..今天终于AC了..先取整数部分,去零,判断位数相等否,再比较.如果相等,再取小数部分,去零,比较,输出....好烦...

代码;

#include "stdio.h"
#include "string.h"
void swi(char a[],char b[]);
void swi1(char a[],char b[]);
void qdele(char a[],char b[]);
void hdele(char a[]);
int main(){
    int n,s1,s2,s3,s4;
    char a[100010],b[100010],c[100010],d[100010];
    while(~scanf("%s%s",&a,&b)){
        swi(a,c);
        swi(b,d);
        qdele(c,c);
        qdele(d,d);
        s1=strlen(c);
        s2=strlen(d);
        if(s1==s2){
            if(strcmp(c,d)==0){
                swi1(a,c);
                swi1(b,d);
                hdele(c);
                hdele(d);
                if(strcmp(c,d)==0){
                    printf("YES\n");
                }
                else{
                    printf("NO\n");
                }
            }
            else{
                printf("NO\n");
            }
        }
        else{
            printf("NO\n");
        }
    }
    return 0;
}
void swi(char a[],char b[]){
    int i,s;
    s=strlen(a);
    for(i=0;i<s;i++){
        if(a[i]==.) break;
        b[i]=a[i];
    }
    b[i]=\0;
}
void swi1(char a[],char b[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=s;i>=0;i--){
        if(a[i-1]==.) break;   //12.200    s-i-1    
    }
    //t=s-i-1;
    for(;i<s;i++){
        b[t++]=a[i];
    }
    b[t]=\0;
}
void qdele(char a[],char b[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=0;i<s;i++){
        if(a[i]!=0) break;    //0022   i=2;
    }
    for(;i<s;i++){
        b[t++]=a[i];
    }
    b[t]=\0;
}
void hdele(char a[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=s;i>=0;i--){
        if(a[i-1]!=0) break;    //2200
    }
    a[i]=\0;
}

 

以上是关于hdu 2054的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2054 A == B ?(找小数点)

HDU 2054 A == B ?

HDU 2054: A == B ?

(stripTrailingZeros)A == B hdu2054

A == B ?(hdu2054)

hdu2054 通过率低是有理由的