经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
(杭电 2054)A==B?(这真是个巨坑) - cafu-chino
来源:cnblogs  作者:cafu-chino  时间:2018/12/24 10:36:57  对本文有异议

A == B ?

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 133531 Accepted Submission(s): 21293

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. 1 2
  2. 2 2
  3. 3 3
  4. 4 3

Sample Output

  1. NO
  2. YES
  3. YES
  4. NO

这题真是一个巨坑

因为题中没有给出A,B是什么样的数,所以需要考虑的不仅仅是 大数 的问题还要考虑 小数 的问题。

我一开始没注意到小数点后还有数要去比就直接把小数点换成'\0'结果就WA了好几次(2333);

代表测试样例

  1. 0.0 0
  2. YES
  3. 1.222 1
  4. NO

样例代码

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. char a[100000],b[100000];
  4. int main()
  5. {
  6. while(~scanf("%s%s",a,b))
  7. {
  8. int oja=0,ojb=0;
  9. int lena=strlen(a);
  10. int lenb=strlen(b);
  11. for(int i=0; i <= lena-1; i++)
  12. if(a[i] == '.')
  13. oja=1;
  14. for(int i=0; i <= lenb-1; i++)
  15. if(b[i] == '.')
  16. ojb=1;
  17. if(oja == 1) //下面的可以单独定义一个函数,不过TL不TL就不知道了
  18. {
  19. while(a[lena-1] == '0')
  20. {
  21. a[lena-1]='\0';
  22. lena--;
  23. }
  24. if(a[lena-1] == '.')
  25. a[lena-1] = '\0';
  26. }
  27. if(ojb == 1)
  28. {
  29. while(b[lenb-1] == '0')
  30. {
  31. b[lenb-1]='\0';
  32. lenb--;
  33. }
  34. if(b[lenb-1] == '.')
  35. b[lenb-1] = '\0';
  36. }
  37. if(strcmp(a,b) == 0)
  38. cout << "YES" << endl;
  39. else
  40. cout << "NO" << endl;
  41. }
  42. return 0;
  43. }
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号