杭电ACM 2054 A == B ?
来源:互联网 发布:js 扫描枪录入 编辑:程序博客网 时间:2024/04/29 19:04
http://acm.hdu.edu.cn/showproblem.php?pid=2054
这道题费了我好长时间!变态!
这道题目上没给具体的数值类型,所以要开一个很大的字符数组。
要注意下面几种情况:
1)前面的无效0去掉
2)小数点后面的无效0去掉
3)-0=0
4)可以去掉的话,最好去掉小数点,防止10==10.0这种情况发生
#include <iostream>#include <cstring>using namespace std;char a[100000],b[100000];void change(char* a,int *s,int *len){//change the chars to standar formint i=0;int j=(*len)-1;if(a[i]=='-') {(*s)++;i++;(*len)--;}while(a[i]=='0'&&i<j+1) {(*len)--;(*s)++;i++;}//去掉前面的0 for(int k=0;k<j+1;k++){if(a[k]=='.') {while(a[j]=='0'&&j>=0) {(*len)--;j--;}break;}}//去掉小数点之后,最后的无用0 if(a[j]=='.')(*len)--; //去掉小数点 }int main(){int flag;int s_a,s_b;int len_a,len_b;int flag_po;//如果正负不同,=1 while(cin>>a>>b){flag_po=0;flag=1;s_a=0;s_b=0;len_a=strlen(a);len_b=strlen(b);if((a[0]=='-'&&b[0]!='-')||(a[0]!='-'&&b[0]=='-')) {flag_po=1; }change(a,&s_a,&len_a);change(b,&s_b,&len_b);if(len_a!=len_b) {cout<<"NO"<<endl;continue;}if(flag_po==1&&len_a==0){ //0=-0cout<<"YES"<<endl;continue;}if (flag_po==1){ cout<<"NO"<<endl;continue;}for(int i=s_a,j=s_b;i<len_a;i++,j++){if(a[i]!=b[j]) { cout<<"NO"<<endl; flag=0; break;}}if(flag==1) cout<<"YES"<<endl; }return 0;}
- 杭电ACM 2054 A == B ?
- 杭电ACM 2054:A == B ?
- 杭电2054 A == B ?
- 杭电 2054 A==B?
- 杭电2054A == B ?
- 杭电2054 A==B?
- 【杭电】[2054]A==B
- 杭电2054-A == B ?
- 杭电2054A == B ?
- 杭电ACM 1228 A + B
- 杭电ACM 2034 人见人爱A-B
- 杭电ACM 2035 人见人爱A^B
- 杭电ACM 2057 A + B Again
- 杭电ACM--1228 A+B
- 杭电ACM 1000 A + B Problem
- 杭电ACM 1229 还是A+B
- 杭电ACM 2033 人见人爱A+B
- 杭电ACM 2034 人见人爱A-B
- MFC的进程和线程,非正常终止
- MySQL中文全文索引插件 mysqlcft
- 设计模式php实例:策略模式
- 缓解可查错性问题的手段——单元测试
- 贪心算法 - 背包问题
- 杭电ACM 2054 A == B ?
- mysql中文全文索引
- SAMATE - Software Assurance Metrics And Tool Evaluation
- HttpWebResponse请求状态代码
- 有一种心痛叫移民
- javascript this 关键字 for study
- 野火图片
- Category:OWASP Best Practices: Use of Web Application Firewalls/Version 1.0.5
- Oracle APEX 在页面直接传递参数值