Java 将多个数字与用户输入进行比较,以找到最接近的答案。
基本上,我是java新手,并创建了一个小程序。我做了大部分。基本上,我现在有四个int,由文件阅读器完成,还有一个通过scanner.in生成的数字。我现在要做的就是将四个int与scanner.in数字进行比较,并显示与scanner.in输入最接近的数字 我不确定从哪里开始,因为这是关于比较结果的,我以前从未遇到过 感谢任何帮助,我只需要知道从哪里开始,真的Java 将多个数字与用户输入进行比较,以找到最接近的答案。,java,comparison,Java,Comparison,基本上,我是java新手,并创建了一个小程序。我做了大部分。基本上,我现在有四个int,由文件阅读器完成,还有一个通过scanner.in生成的数字。我现在要做的就是将四个int与scanner.in数字进行比较,并显示与scanner.in输入最接近的数字 我不确定从哪里开始,因为这是关于比较结果的,我以前从未遇到过 感谢任何帮助,我只需要知道从哪里开始,真的 干杯,伙计们 创建另一个名为closestAnswer的int或类似的东西。这将是最后返回的结果。默认情况下,closestAnswe
干杯,伙计们 创建另一个名为
closestAnswer
的int
或类似的东西。这将是最后返回的结果。默认情况下,closestAnswer
将被初始化为第一个int
(guess1
)。如果guess2
和actualswer
之间的差异小于closestAnswer
和actualswer
之间的差异,则guess2
将成为新的closestAnswer
。然后对guess3
和guess4
重复上述步骤。最后,closestAnswer
将表示哪个猜测最接近actualAnswer
这与在数组中查找最小的数字非常相似,只是在一组数字中查找最小的差异
如果您的4个数字位于某种列表/数组/可编辑集合中,则可以使用for循环快速遍历该数字
它可能看起来像这样
int currentClosest = numbers[0];
int smallestDifference = Math.Abs(scannedNum - number[0]); //or other infinity-value
for(int i = 1; i < number.length; i++) //iterate through array
{
int currentDifference = Math.Abs(scannedNum - number[i]);
if ( currentDifference < smallestDifference) //If this element is closer do stuff
{
currentClosest = number[i];
smallestDifference = currentDifference;
}
}
//print currentClosest
int currentClosest=数字[0];
int smallestDifference=Math.Abs(scannedNum-number[0])//或其他无穷大值
for(int i=1;i
如果您的数字不在一个数组或类似的数组中,您可以将它们放入一个数组中,或者只是手动使用类似的逻辑编写4个比较代码。希望这能有所帮助。有几种方法可以做到这一点,但我会选择稍长一点的循环
int lowerBound = input, upperBound = input;
现在ArrayOfNumber应该是一个ArrayList,因此它可以使用contains方法。你也可以使用数组,但是你必须自己迭代,这只会增加不必要的麻烦
while (!arrayOfNumbers.contains(lowerBound) && !arrayOfNumbers.contains(upperBound) {
lowerBound--;
upperBound++;
}
// I'm using two 'if's, because there can be two closest
// numbers, if the input is directly between two values.
if (arrayOfNumbers.contains(lowerBound)) {
System.out.println(lowerBound);
}
if (arrayOfNumbers.contains(upperBound)) {
System.out.println(upperBound);
}
所以本质上,它向上和向下搜索以找到最接近的数字。如果你不用底片,那就更容易了,但我想我会更安全。如果你使用的是小数,那么情况也就不同了。是数组中的输入,如果是,它会被排序吗?不,它不在数组中。我没有使用数组,不过在试图弄清楚如何使用数组时,数组似乎是最简单的方法。还要对guess[1..4]值进行排序,以便也可以使用二进制搜索。