Appoint description:
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<string>
#include<cstring>
using namespace std;
char a[100000],b[100000];
string quqiandaoling(string c,int k)
{
string s;
int h = 0;
for( ; h < k;h ++)
if(c[h]-'0') break;
for(; h <k; h ++)
s+=c[h];
return s;
}
string quhoudaoling(string c,int k)
{
string s;
int i = k-1;
for( ; i >=0; i --)
if(c[i] != '0') break;
for(int f=0; f<=i; f ++) {
s+=c[f];
}
return s;
}
int main()
{
while(cin>>a>>b)
{
string s1,s2,s3,s4;
int t1 = strlen(a);
int t2 = strlen(b);
bool f1 = 0,f2 = 0;
for(int i = 0; i < t1 ; i ++){
if(a[i] == '.'){f1 = 1; continue; }
if(!f1) s1 += a[i];
else s2 += a[i];
}
for(int j = 0; j < t2; j ++){
if(b[j] == '.'){f2 = 1; continue; }
if(!f2) s3 += b[j];
else s4 += b[j];
}
if(!s1.empty() ) s1 = quqiandaoling(s1,s1.size() );
if(!s3.empty() ) s3 = quqiandaoling(s3,s3.size() );
if(!s2.empty() ) s2 = quhoudaoling(s2,s2.size() );
if(!s4.empty() ) s4 = quhoudaoling(s4,s4.size() );
if(s1.empty()) s1 = "0";
if(s2.empty()) s2 = "0";
if(s3.empty()) s3 = "0";
if(s4.empty()) s4 = "0";
if(s1 == s3 && s2 == s4 ) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
以前没A过去,现在过了。。。