真是痛苦。。。。。。。。
先给出几组测试数据吧;
1.0000000 1.0 1.0000000 1 0.0000 0 100.000 100
+5.00 5
先附上我的代码吧;
蛋疼的人类呀;
#include<iostream> #include<string.h> #include<string> using namespace std; char a[100000],b[100000]; int main() { while(scanf("%s%s",&a,&b)!=EOF) { int i,j1,j2,flaga=0,flagb=0; char c[100000]={0},d[100000]={0}; int changa=strlen(a); int changb=strlen(b); for(i=0;i<changa;i++) { if(a[i]=='.') { flaga=1; break; } } for(i=0;i<changb;i++) { if(b[i]=='.') { flagb=1; break; } } if(flaga==1) { for(i=changa-1;i>=0;i--) { if(a[i]=='0') changa--; else break; } if(a[changa-1]=='.') changa--; } if(flagb==1) { for(i=changb-1;i>=0;i--) { if(b[i]=='0') changb--; else break; } if(b[changb-1]=='.') changb--; } for(i=0;i<changa;i++) { if((a[i]-'0'>=1&&a[i]-'0'<=9)||a[i]=='.') { break; } } int m1=i; for(i=m1,j1=0;i<changa;i++,j1++) { c[j1]=a[i]; } for(i=0;i<changb;i++) { if((b[i]-'0'>=1&&b[i]-'0'<=9)||b[i]=='.') { break; } } m1=i; for(i=m1,j2=0;i<changb;i++,j2++) { d[j2]=b[i]; } if(j1==0&&j2==0) cout<<"YES"<<endl; else { if(strcmp(c,d)==0) { if((a[0]=='-'&&b[0]!='-')||(a[0]!='-'&&b[0]=='-')) { cout<<"NO"<<endl; } else cout<<"YES"<<endl; } else printf("NO\n"); } } }
这代码太多,我不敢看。。。。。。。。。
等下再收录下别人的代码。。
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; char a[100000],b[100000]; void change(char s[]) { int i,len; len = strlen(s); if(strstr(s,".")) { for(i = len-1; s[i] == '0'; i--) { s[i] = '\0'; len--; } } if(s[len-1] == '.') s[len-1] = '\0'; } int main() { while(scanf("%s%s",a,b)!=EOF) { change(a); change(b); if(strcmp(a,b)) printf("NO\n"); else printf("YES\n"); } return 0; }
看看别人,看看我,,哎,我的路还很长呢