地址:http://acm.hdu.edu.cn/showproblem.php?pid=2054
思路:题目没说多少位,所以只能用数组存放了
注意以下几点:
1.有无小数点
2.前端0和后端0
3.正负号(注意0的情况)
# include <stdio.h>
# include <string.h>
char *norm(char *a)
{
int len = strlen(a), i = 0;
char *z = a;
if(strchr(a, '.') != NULL)
{
while(a[--len] == '0')
;
if(a[len] == '.')
len--;
a[++len] = '\0';
}
while(i <= len && a[i] == '0')
{
i++;
}
z = &a[i];
return z;
}
int main()
{
char z[12580] = "0", a[12580], b[12580], *p, *q, flag;
while(scanf("%s%s", a, b) != EOF)
{
flag = 0;
p = a;
q = b;
if (a[0] == '-' || a[0] == '+')
p = &a[1];
if (b[0] == '-' || b[0] == '+')
q = &b[1];
if ((b[0] == '-' || a[0] == '-') && a[0] != b[0])
{
if (strcmp(norm(p), norm(z)) == 0 && strcmp(norm(q), norm(z)) == 0) //+0和-0都是0。。。
{
printf("YES\n");
break;
}
else
flag = 1;
}
if(!strcmp(norm(p), norm(q)) && flag == 0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}