【坑】HDU2054 A==B?
2013-05-14 11:10
225 查看
链接:点击打开链接
非常坑的一道题,看上去水到暴。。顺手用__int64,wa了,然后才发现没这么简单。
1、统一正负号
2、去掉先导零
3、去掉小数点后末尾的0
3、各种用0表示的坑 +0 -0 +0.00 -0.000都是yes...
不要小看水题。。ORZ
非常坑的一道题,看上去水到暴。。顺手用__int64,wa了,然后才发现没这么简单。
1、统一正负号
2、去掉先导零
3、去掉小数点后末尾的0
3、各种用0表示的坑 +0 -0 +0.00 -0.000都是yes...
不要小看水题。。ORZ
#include <iostream> #include <string> #include <cstdio> #include <ctype.h> using namespace std; int main() { string a,b; string blank=""; while(cin>>a>>b) { bool a0=1,b0=1; //0单独判断之,防止0.00 -0 +0.000 +00.000.......等很多种 for(int i=0;i<a.length();i++) { if(a[i]!='0' && a[i]!='.' && a[i]!='+' && a[i]!='-') { a0=0; break; } } for(int i=0;i<b.length();i++) { if(b[i]!='0'&&b[i]!='.'&&b[i]!='+'&&b[i]!='-') { b0=0; break; } } if(a0==1 && b0==1) { cout<<"YES"<<endl; break; } //1-防止+0 0这种 if(isdigit(a[0])) a.insert(0,"+"); if(isdigit(b[0])) b.insert(0,"+"); int posa=a.length()-1; int posb=b.length()-1; int befzeroa=0,befzerob=0; for(int j=1;j<posa;j++) { if(a[j]=='0') continue; else { befzeroa=j-1; break; } } for(int j=1;j<posb;j++) { if(b[j]=='0') continue; else { befzerob=j-1; break; } } //2-防止009.7 9.7这种 a.erase(1,befzeroa); //正确的删除用法 b.erase(1,befzerob); int lastzeroa=a.length(); int lastzerob=b.length(); for(int i=1;i<a.length();i++) { if(a[i]=='.') posa=i; } for(int j=1;j<b.length();j++) { if(b[j]=='.') posb=j; } for(int p=a.length()-1;p>posa;p--) { if(a[p]=='0') { a.erase(p,1); } else { break; } } for(int t=b.length()-1;t>posb;t--) { if(b[t]=='0') { b.erase(t,1); } else { break; } } //3-防止3.0 --- 3 这种 if(a[a.length()-1]=='.') a.erase(a.length()-1,1); if(b[b.length()-1]=='.') b.erase(b.length()-1,1); //cout<<a<<" "<<b<<endl; if(a==b) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
相关文章推荐
- hdu2054 A == B ?(高精度比较)
- HDU2054
- HDU2054
- hdu2054
- HDU2054 A == B ? 模拟题
- hdu2054 不要想太多,这就一水题
- hdu2054 A == B ? (大数)
- HDU2054:A == B ?
- HDU2054 A == B ?【大数】
- HDU2054
- hdu2054 A == B ?
- HDU2054 A == B?
- HDU2054 有点坑的大数比较
- hdu2054A == B ?
- 大数——大数判等(hdu2054)
- hdu2054
- HDU2054_A == B ?【模拟题】【大数】【水题】
- hdu2054 判断俩数是否相等
- HDU_Steps9.1 杂题 HDU2054 HDU1789 HDU2159 HDU1401 HDU2818 HDU3465 HDU2433 HDU3524
- HDU2054---A == B ?