码迷,mamicode.com
首页 > 其他好文 > 详细

HDoj 2054 A == B ?

时间:2020-04-14 20:21:08      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:eof   php   panel   style   div   out   c语言   hdu   clu   

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()测量字符串的长度,规则并不是以‘\0‘截止。在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]=\0;
                if(s1[i]==.)    //防止遇到1.0000
                {
                    s1[i]=\0;
                    break;         ////这句要加上,因为小数点之前的0是有效的
                }
                i--;
            }
         //   for(int i=strlen(s1)-1;s1[i]==‘0‘;i--)
         //        s1[i]=‘\0‘;
        }

          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]=\0;
                if(s2[i]==.)    //防止遇到1.0000
                {
                    s2[i]=\0;
                    break;       //这句要加上,因为小数点之前的0是有效的
                }
                i--;
            }
           // for(int i=strlen(s2)-1;s2[i]==‘0‘;i--)
              //   s2[i]=‘\0‘;
        }
       // printf("%s %s\n",s1,s2);
      //  printf("%d %d\n",strlen(s1),strlen(s2));
        if(!strcmp(s1,s2))
            printf("YES\n");
        else
            printf("NO\n");
        getchar();
    }
}

 

HDoj 2054 A == B ?

标签:eof   php   panel   style   div   out   c语言   hdu   clu   

原文地址:https://www.cnblogs.com/wzmm/p/12700311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!