最短的java代码[关闭]
Posted
技术标签:
【中文标题】最短的java代码[关闭]【英文标题】:The shortest java code [closed] 【发布时间】:2012-08-18 11:20:30 【问题描述】:import java.util.*;
public class SoSanh
public static void main(String[] args)
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
if( a > b ) System.out.print("1");
else if ( a < b ) System.out.print("-1");
else System.out.print(0);
我怎样才能使它尽可能小。它必须像 1-2 行代码(不包括导入、公共类和 main 方法)
这不是家庭作业,我通过互联网上的书籍和作业学习 Java。我只是想知道它是否可以变得更短。这不是关于速度,你们误会了。
对不起,我的英语很差。
p/s : 现在我不能问任何问题 :( 我只面临 1 个问题。
【问题讨论】:
为什么它有是1-2行? 代码的短小与速度没有任何关系。没有办法让这段代码更快。 为什么 5 行太长了?行数对于代码的速度并不重要。使用的算法是。 @Thomas 不,我认为任何理智的老师都不会分发如此变态的作业。不过,这属于愚蠢的求职面试问题。 不,这不是作业,没有人教我Java,我很年轻,我通过阅读书籍和很多书籍来学习Java。我问这个,所以我可以找到一个短代码。我知道代码的简短与速度无关。 【参考方案1】:几乎正确:
System.out.println((int)Math.signum(input.nextInt() - input.nextInt());
“几乎”由于可能的整数过低。此外,您的较长代码实际上可能更快(signum()
浮点数操作),更不用说更具可读性了。
【讨论】:
我只是想让代码更短一点,和速度没有关系。【参考方案2】:您可以使用Integer
是Comparable
的事实:
Scanner input = new Scanner(System.in);
System.out.println(((Integer)input.nextInt()).compareTo(input.nextInt()));
【讨论】:
这是link to this code on ideone。【参考方案3】:这是没有整数溢出问题的 Tomasz 代码版本:
System.out.println((int)Math.signum((double) input.nextInt() - (double) input.nextInt());
但是是的,这太可怕了。
关注可读性,而不是“尽可能短的行数”。
【讨论】:
【参考方案4】:public static void main(String[] args)
Scanner input = new Scanner(System.in);
System.out.println(Math.signum(input.nextInt() - input.nextInt()));
【讨论】:
【参考方案5】:2 行有效:
Scanner input = new Scanner(System.in);
System.out.println(new Integer(input.nextInt()).compareTo(new Integer(input.nextInt())));
【讨论】:
以上是关于最短的java代码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章