hdu2054 判断俩数是否相等

来源:互联网 发布:java 键值对会覆盖 编辑:程序博客网 时间:2024/06/05 08:15

ac代码如下

此题判断俩数是否相等,倒不如说判断俩数一样(无意义的零不算哈)因为我们知道计算机判断俩整数相等的时候可以直接比较,但是浮点数比较相等是让他们差的绝对值小于10的-6次方;因此我们要判断俩数“真正”相等,必须借用字符串逐个比较来实现。

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
void com(char s[])//定义一个函数,把输入字符串中无意义的零去掉。  特别注意如果小数点后所有零都无意义,那么我们必须把小数点去掉。
{
        int len,p=0,i;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
                if(s[i]=='.')
                {
                        p=1;
                        break;
                }
        }
        if(p)
        {
        for(i=len-1;i>=0;i--)
        {
                if(s[i]=='0')
                {
                        s[i]='\0';
                }
                else break;
                len--;
        }
        if(s[len-1]=='.') s[len-1]='\0';
        }
}
int main()
{
        char a[1000000],b[1000000];//这道题没说明长度,因为数组越界re了一次,说明这题的数据很长,尽可能把长度定义大一些。
        while(scanf("%s%s",a,b)!=EOF)
        {
                com(a);
                com(b);
                if(strcmp(a,b))
                        printf("NO\n");
                else  printf("YES\n");
        }
        return 0;
}

1 0
原创粉丝点击