学习笔记--2054

1.A==B?(http://acm.hdu.edu.cn/showproblem.php?pid=2054)

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

2.这个是很久之前做的,当时做的时候以为是很弱智的题目,三两下写完以后发现 Output Limit Exceeded,搞清楚它里面隐藏的信息后觉得这是一道很麻烦的远远不是只报 Output Limit Exceeded的题目就把它先放下了,如今暑假再来回头看,想要啃下这个难搞的问题,由于复习阶段放下了蛮久的,现在也在慢慢重新找回做题的感觉。


①c考虑的东西真的太多了,小数点的,0的,比如:在简单的A==B判断里,计算机中1.0跟1是会输入NO的,这个时候就需要我们去考虑,除掉小数点后面的0再比较了,那问题又来了,万一是1.0000000001呢,这就要用到两种不同顺序的循环做这个工作了

 int i,j,len,flag=-1;
    len = strlen(str);
    for (i=0;i<=len-1; i++){
        if (str[i] == '.'){
            flag = i;
            break;
        }
    }
    if (flag>=0){
        for (i=len-1;i>=0;i--){
            if (str[i]!='0')break;
            else str[i]='\0';
        }
        if (str[i]=='.') str[i] = '\0';
    }
}

先寻找小数点,然后再从最小的位数开始循环,只要不为0就跳出去直接判断,为0则做清除工作(‘\0’)
ps:值得注意的问题是定义数组时容量大小要常规性定义到100000

②因为刚结束的这个学期刚好就学了java,就想用java也试一试这道曾经被我认为很棘手的题,然而.......知道java里有个东西叫BigDecimal类以后我哭了。然后!就直接无脑操作就完了!

对它的相关解释是这样的

java.math.BigDecimal.compareTo(BigDecimal val) 由BigDecimal对象与指定BigDecimal值进行比较。
两个BigDecimal对象的值相等,但有一个不同的比例(如2.0和2.00)都用这种方法视为相等。

此方法提供优先于个别方法的六个逻辑比较运算符 (<, ==, >, >=, !=, <=).
建议的习惯用法执行这些比较是的:(x.compareTo(Y) <op>0)

ps:要注意的是判断循环的时候要用sc.hasNext()方法返回boolean值,而不是直接sc.next(),还有最基本的oj上默认类名为Main。

java完整代码

import java.math.BigDecimal;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            BigDecimal A = sc.nextBigDecimal();
            BigDecimal B = sc.nextBigDecimal();
            if(A.compareTo(B)==0)   System.out.println("YES");
            else   System.out.println("NO");
        }
    }
}

3.总结:这题来说用java简直比c舒服多了(应该很多题目都是),但是首先得了解java它有这个类有这个方法,从而才知道要去用这个;而c直接就是思维问题,要想解决一个问题,就得尽可能解析表面信息和隐藏信息,再去一个个突破,一不小心疏忽解不出来就是解不出来的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Python的hello-world: print ("Hello, Python!")、 完了 摇就完事儿...
    LunarShade阅读 1,523评论 0 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,516评论 0 13
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,571评论 0 17
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,452评论 0 10
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,931评论 0 38