几经修改,现在已经面目全非了,还好是过了。。。。。想哭。。。。数据太坑了。。。。
(1)注意负号问题
(2)前面的零
(3)小数点
(4)如果有小数点的话,最后有0的情况
(5)-0和0
#include<iostream>
#include<string>using namespace std;
int main()
{
string a,b;
while(cin>>a>>b)
{
int m=1,n=0;
int i=0,j=0;
int t=0;
if(a[0]==b[0]&&a[0]=='-')
{
i++;j++;
}
else if(a[0]=='-'||b[0]=='-')
{
t=1;
while(a[i]!='\0')
{
if(a[i]!='0'&&a[i]!='.')
t=0;
i++;
}
while(b[j]!='\0')
{
if(b[j]!='0'&&b[j]!='.')
t=0;
j++;
}
}
if(t) cout<<"YES"<<endl;
else{
while(a[i]=='0') i++;
while(b[j]=='0') j++;
while(a[i]!='\0'&&b[j]!='\0')
{
if(a[i]!=b[j])
{
m=0;
break;
}
if(a[i]=='.'||b[j]=='.'||a[i+1]=='.'||b[j+1]=='.') n=1;
i++;j++;
}
if(m&&n)
{
if(a[i]!='\0')
{
while(a[i]!='\0')
{
if(a[i]!='0'&&a[i]!='.')
{
m=0;
break;
}
i++;
}
}
if(b[j]!='\0')
{
while(b[j]!='\0')
{
if(b[j]!='0'&&b[j]!='.')
{
m=0;
break;
}
j++;
}
}
}
if(a[i]!='\0'||b[j]!='\0') m=0;
if(m) cout<<"YES"<<endl;
else cout<<"NO"<<endl;}
}
}