这道题是我刚接触ACM的时候的一道题,那是连大数都不知道,
以为这是一道水题,结果没过,今天又看见啦,就做一下啦,
结果又wa了好几次才过~
A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 50258 Accepted Submission(s): 7749
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
#include <iostream>
#include <cstring>
#include <cstdio>
#include<cmath>
#include <algorithm>
using namespace std;
char s[100005],b[100005];
char* solve(char *a)
{
int t=strlen(a);
if(strchr(a,'.')!=NULL)
{
while(a[--t]=='0');
if(a[t]=='.')
t--;
a[t+1]='\0';
}//去除后缀零
while(a[0]=='0')
{
for(int j=0;j<t-1;j++)
a[j]=a[j+1];
a[t--]='\0';
}//去除前缀零
return a;
}
int main()
{
int i;
while(~scanf("%s%s",s,b))
{
if(strcmp(solve(s),solve(b))==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}