判斷兩個數相等(坑點)
阿新 • • 發佈:2019-01-07
兩個數可以是負數,可以是小數,可以是001.100
#include<iostream> #include<cstdio> #include<string> using namespace std; int main() { string a,b; while(cin>>a) { cin>>b; string::size_type i,j,n=0,m=0,n1=0,m1=0,n2=0,m2=0; if(a[0]=='0') { for(i=0; i<a.size(); i++) { if(a[i]=='0') n++; else break; } a.erase(0,n); } if(a[0]=='-') { if(a[1]=='0') { for(i=1; i<a.size(); i++) { if(a[i]=='0') n2++; else break; } a.erase(1,n2); } } for(i=0; i<a.size(); i++) { if(a[i]=='.') { for(j=a.size()-1; j>i; j--) { if(a[j]=='0') n1++; else break; } if(n1==a.size()-1-i) a.erase(i,n1+1); else a.erase(a.size()-n1,n1); break; } } if(b[0]=='0') { for(i=0; i<b.size(); i++) { if(b[i]=='0') m++; else break; } b.erase(0,m); } if(b[0]=='-') { if(b[1]=='0') { for(i=1; i<b.size(); i++) { if(b[i]=='0') m2++; else break; } b.erase(1,m2); } } for(i=0; i<b.size(); i++) { if(b[i]=='.') { for(j=b.size()-1; j>i; j--) { if(b[j]=='0') m1++; else break; } if(m1==b.size()-1-i) b.erase(i,m1+1); else b.erase(b.size()-m1,m1); break; } } if(a==b) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }