zoukankan      html  css  js  c++  java
  • #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
    

    思路:

    此题关键是找小数点,找到小数点把最后面无效的零去掉再比较就OK

    教训:

    一开始做的时候感觉好简单啊,直接string输入然后==比较,然后WA打脸了,发觉可能是大数比较问题,然后long double测试还是没过,想了很久才想到可能是精度问题如000123 和 123 还有小数点 ' . '的问题一些的,不断完善最后才AC了

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    void trim0(string& b)
    {
    	int len = b.length();
    	if(b.find('.')!=string::npos)
    	{
    		for(int i=len-1;b[i]=='0';i--)
    			len--;
    		b=b.substr(0,len);
    	}
    	if(b[len-1]=='.')
    		b=b.substr(0,len-1);
    }
    void main()
    {
    	string a,b;
    	while(cin>>a>>b)
    	{
    		trim0(a);
    		trim0(b);
    		if(a==b)
    			cout<<"YES"<<endl;
    		else
    			cout<<"NO"<<endl;
    	}
    }
    
  • 相关阅读:
    wamp配置虚拟主机
    php单例模式
    YII缓存操作
    YII的延迟加载
    之字形打印二叉树
    对称的二叉树
    二叉树的下一节点
    删除链表的重复节点
    链表中环的入口
    字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/RioTian/p/12763643.html
Copyright © 2011-2022 走看看