A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 89203 Accepted Submission(s): 14120
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
校庆杯Warm Up
题目大意:给你两个数,判断是否相等。这两个数可能是小数,大数,,,,当时做题时只考虑了大数的前导零没考虑到小数部分,然后就一直WA。小数部分应该考虑末尾零,即无效数字。去掉末尾零,进行简单处理后再进行比较。。。
AC代码:
#include<stdio.h>
#include<string.h>
char a[120001],b[120001];
int main()
{
while(scanf("%s%s",a,b)!=EOF)
{
int len1=strlen(a),len2=strlen(b);
if(strchr(a,'.')!=NULL)//判断a是否是小数
{
int i;
for(i=len1-1; a[i]=='0'; i--)
{
a[i]='\0';//去掉小数末尾的0
}
if(a[i]=='.')
a[i]='\0';//如果小数点后全是0,则去掉小数点
}
if(strchr(b,'.')!=NULL)
{
int i;
for(i=len2-1; b[i]=='0'; i--)
{
b[i]='\0';
}
if(b[i]=='.')
b[i]='\0';
}
if(!strcmp(a,b))//判断处理完的a,b是否相等
printf("YES\n");
else
printf("NO\n");
}
return 0;
}