HDoj 2054 A == B ?

Posted wzmm

tags:

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

Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
 

 

Input
each test case contains two numbers A and B.
 

 

Output
for each case, if A is equal to B, you should print "YES", or print "NO".
 

 

Sample Input
1 2 2 2 3 3 4 3
 

 

Sample Output
NO YES YES NO
 

 

Author
8600 && xhd
 

 

Source
 

 

Recommend
linle   |   We have carefully selected several similar problems for you:  2072 2055 2057 2056 2058 
 
 
 
典型大数问题,注意错误点
1  防止遇到1.10000
2 防止遇到1.0000
3 防止0.000数组越界
4 防止10.000 和10.000比较
还有一点C++中string的sizeof()测量字符串的长度,规则并不是以‘‘截止。在codeblocks的MinGW中是这样
 
 
C语言代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
    char s1[100000];
    char s2[100000];
    int flag1,flag2;
    while(scanf("%s%s",s1,s2)!=EOF)
    {
        flag1=flag2=0;
        for(int i=0;i<strlen(s1);i++)
        {
            if(s1[i]==.)
            {
                flag1=1;
                break;
            }
        }

        for(int i=0;i<strlen(s2);i++)
        {
            if(s2[i]==.)
            {
                flag2=1;
                break;
            }
        }

        if(flag1)
        {
            int i=strlen(s1)-1;
            while(i>0)       //防止0.000的情况导致数组越界
            {
                if(s1[i]>=1&&s1[i]<=9)
                    break;
                if(s1[i]==0)     //遇到1.1000
                    s1[i]=;
                if(s1[i]==.)    //防止遇到1.0000
                {
                    s1[i]=;
                    break;         ////这句要加上,因为小数点之前的0是有效的
                }
                i--;
            }
         //   for(int i=strlen(s1)-1;s1[i]==‘0‘;i--)
         //        s1[i]=‘‘;
        }

          if(flag2)
        {
            int i=strlen(s2)-1;
            while(i>0)     //防止0.000的情况导致数组越界
            {
                if(s2[i]>=1&&s2[i]<=9)
                    break;
                if(s2[i]==0)     //遇到1.1000
                    s2[i]=;
                if(s2[i]==.)    //防止遇到1.0000
                {
                    s2[i]=;
                    break;       //这句要加上,因为小数点之前的0是有效的
                }
                i--;
            }
           // for(int i=strlen(s2)-1;s2[i]==‘0‘;i--)
              //   s2[i]=‘‘;
        }
       // printf("%s %s
",s1,s2);
      //  printf("%d %d
",strlen(s1),strlen(s2));
        if(!strcmp(s1,s2))
            printf("YES
");
        else
            printf("NO
");
        getchar();
    }
}

 

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

HDU 2054: A == B ?

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

HDU 2054 A == B ?

(stripTrailingZeros)A == B hdu2054

A == B ?(hdu2054)

HDOJ_1228_A+B