HDU_oj_2054 A==B ?
Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
分析:
此题在于比较以下集中情况的数据:
①数值超过数据类型范围,比如超过64位的数据
②数值有前导零(此题测试不用考虑前导零)
③数值有小数点
④数值小数点后有后导零
注意点:
数据位数一定要开大,经测试,最大一个测试数据在12000到12050之间
所以最小也得12050以上
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 void gg(char *s) 6 { 7 int len=strlen(s); 8 if(strchr(s,'.')) 9 { 10 for(len-=1;s[len]=='0';len--); 11 if(s[len]=='.') 12 s[len]='\0'; 13 else 14 s[len+1]='\0'; 15 } 16 } 17 int main() 18 { 19 char m[20000],n[20000]; 20 memset(m,0,sizeof(m)); 21 memset(n,0,sizeof(n)); 22 while(cin>>m>>n) 23 { 24 gg(m); 25 gg(n); 26 if(strcmp(m,n)==0) 27 cout<<"YES"<<endl; 28 else 29 cout<<"NO"<<endl; 30 } 31 return 0; 32 }