hdu 2054 A==B?
2014-05-20 11:00
411 查看
# include<iostream> using namespace std; void deal(string &s) { int k=0; if(~s.find('.'))//存在小数点,两头删除0 { while(s[k]=='0') k++; s.erase(0,k); k=s.size()-1; while(s[k]=='0') k--; s.erase(k+1); } else//是整数,从开头删除0 { while(s[k]=='0') k++; s.erase(0,k); } if(s[s.size()-1]=='.') s.erase(s.size()-1); } int main() { string a,b; while(cin>>a>>b) { //cout<<(a.find('.')==-1)<<endl; deal(a); deal(b); // cout<<a<<endl; // cout<<b<<endl; cout<<((a==b)?"YES":"NO")<<endl; } return 0; }
最朴素的分类讨论(要是直接想出分类合并后的处理那就更好了),小数和小数比较 整数和整数比较 小树和整数比较(这里的小数是指带有小数点)
其实是一边写一遍调试改出来的,处理思路是如果是有小数点从两头开始删除0,如果没有小数点,就从最高位开始删除0.
最后还需注意若是字符串最后一个元素为'.',说明这个数是整数,应该去掉小数点,若是0处理完后字符串为空。
具体出力时调用了 C++的库函数,向用C(未用库函数)和pascal实现的手打党致敬!
自己设计的样例。
0000.0001234500000
0000.000000000
0001.100000000
0000.3200000
0.0
5000000.0
0.50000
.12323345
0
500000000
00005000000
相关文章推荐
- hdu 2054 A == B ? (java大数)
- hdu 2054 A == B ?【JAVA】
- HDU 2054 A == B 【String 的骚操作 , string find 的应用】
- HDU 2054 A == B ?(水~)
- HDU-2054A == B ?
- Java高精度练习 Hdu 1002+1042+1047+1212+1316+1715+1753+2054
- hdu 2054 A == B?
- HDU 2054 判断大数是否相等
- HDU_2054——A=B问题
- HDU 2054 又见GCD
- HDU 2054 A == B ?
- hdu 2054
- A == B ? HDU - 2054
- hdu 2054 A == B ?【JAVA】
- HDU 2054 A == B ?(Java大数用equal???C模拟也不能错过)
- HDU 2054 A == B ?
- HDU 2054 A == B ?
- HDU-2054 A==B?
- HDU 2054 A==B? 大数
- hdu 2054 A == B ?