Ermittelt den nächsten Wert zu einer Zahl im Array
Ich habe eine Reihe von positiven / negativen Ints
int[] numbers = new int[10];
numbers[0] = 100;
numbers[1] = -34200;
numbers[2] = 3040;
numbers[3] = 400433;
numbers[4] = 500;
numbers[5] = -100;
numbers[6] = -200;
numbers[7] = 532;
numbers[8] = 6584;
numbers[9] = -945;
Jetzt möchte ich ein anderes int anhand dieses Arrays testen und die Zahl zurückgeben, die dem int am nächsten ist.
Zum Beispiel, wenn ich die Nummer benutzt habe490
Ich würde Punkt 4 von Zahlen zurückbekommen500
Was ist der beste Weg, um so etwas zu tun?
int myNumber = 490;
int distance = 0;
int idx = 0;
for(int c = 0; c < numbers.length; c++){
int cdistance = numbers[c] - myNumber;
if(cdistance < distance){
idx = c;
distance = cdistance;
}
}
int theNumber = numbers[idx];
Das geht nicht Irgendwelche Vorschläge für eine gute Methode, um dies zu tun?