【发布时间】:2014-10-27 14:10:40
【问题描述】:
当我为了好玩而编写这个项目时,我被困在获得我想要的输出上:从输入中取出积极的元素,2 和 -2。
更简单地说,我希望输出是正2而不是负2。
一般的想法是让最接近零的元素。但在这里,我假设正值更接近于 0。
希望大家能回答我的问题。就我个人而言,我想在 Java 方面做得更好,这样我现在就可以帮助像我这样的新手,以后也可以。无论如何,谢谢你,提前。
static int getClosestToZero(int[] array) {
int num = array[0];
int absNum = Math.abs(num);
for(int i = 1; i < array.length; ++i) {
int newAbs = Math.abs(array[i]);
if(newAbs < absNum) {
absNum = newAbs;
num = array[i];
}
}
return num;
}
public static void main(String[] args) {
int[] myArray = {-2, 2};
System.out.println(getClosestToZero(myArray));
}
【问题讨论】:
-
if中的最后一行不应该是num = newAbs;吗? -
应该 >=,而不是 <.....>
-
@MarounMaroun 非常感谢你们!
-
{2, -1}的情况下要返回什么? -
@DreamInCode 这些 cmets 并不完全正确。您不希望
num = newAbs,{-3,-2} 将返回 2。将<更改为>=将使您从 0 开始寻找更远的数字...