A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 100767 Accepted Submission(s): 16018
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
大清早起来写到这道题,坑爹死了,考虑少了一种情况,字符串处理而已,暴力过··
注意坑点:
|
1.99999999999999999999999999999999999999999999 2(这组数据接收了为什么要有字符串来输入) 1.300 1.3(这组数据解释了为什么要在把字符串的结尾符'\0'改为'0') 1.0000 1(这组数据解释了为什么要在把'.'改为'0') 考虑给出的这三种情况就对了。 对了,小心数组越界,要给字符串一个结尾符'\0'。 |
#include<stdio.h>
#include<math.h>
#include<string.h>
char a[1000005],b[1000005];
int main(){
int i;
while(scanf("%s%s",a,b)!=EOF){
int flag=0;
int len1=strlen(a);
int len2=strlen(b);
for(i=0;i<len1;i++){
if(a[i]=='.') {
flag=1; break;
}
}
if(flag){
for(int i=len1-1;i>=0;i--){
if(a[i]=='0') a[i]='\0';
else break;
len1--;
}
if(a[len1-1]=='.') a[len1-1]='\0';
}
flag=0;
//b
for(i=0;i<len2;i++){
if(b[i]=='.'){
flag=1;break;
}
}
if(flag){
for(int i=len2-1;i>=0;i--){
if(b[i]=='0') b[i]='\0';
else break;
len2--;
}
if(b[len2-1]=='.') b[len2-1]='\0';
}
if(strcmp(a,b)==0) printf("YES\n");
else printf("NO\n");
}
}
对两个数组处理,最好写成一个函数,由于我懒就直接复制粘贴了。。。