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
思路:
表面看上去很水的一道题,其实很坑……
由于没给数的范围,故用字符串储存。小数点后无效的0需要删除
代码:
/*Hint:
char *strchr(const char *string, int c);
查找字符串string中首次出现的位置, NULL结束符也包含在查找中.
返回一个指针, 指向字符c在字符串string中首次出现的位置, 如果没有找到, 则返回NULL.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[1000000],b[1000000];
int i,len1,len2;
while(scanf("%s%s",a,b)!=EOF)
{
len1=strlen(a);
len2=strlen(b);
if(strchr(a,'.')!=NULL)
{
for(i=len1-1;a[i]=='0';i--)
a[i]='\0';
if(a[i]=='.')
a[i]='\0';
}
if(strchr(b,'.')!=NULL)
{
for(i=len2-1;b[i]=='0';i--)
b[i]='\0';
if(b[i]=='.')
b[i]='\0';
}
if(strcmp(a,b)==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}