Här får du min lösning. Den är lång och snårig men borde fungera enligt din beskrivning.
public class a {
public static void main(String[] args) {
final int MAX = 10;
int inc = 2;
int current = 144;
int min = 30;
int max = 150;
int from = 0;
int to = 0;
if(current < min){
System.err.println("current < min");
}
else if(min < 0){
System.err.println("min < 0");
}
else if(current > max){
System.err.println("current > max");
}
else if(min > max){
System.err.println("min > max");
}
else{
if( (max - min) / inc > MAX){
from = (current - min) / inc;
to = (max - current) / inc;
if(to > from)
to = Math.max(MAX - from, MAX / 2);
else
from = Math.max(MAX - to, MAX / 2);
}
else{
from = (current - min) / inc;
to = (max - current) / inc;
from = Math.min(from, MAX - to);
to = Math.min(to, MAX - from);
}
int dif = from + to;
if(dif > MAX){
if(from > to)
from = MAX - to;
else
to = MAX - from;
}
int sum = 0;
for(int i = -from; i <= to; i++){
int a = current + (inc * i);
System.out.print(a + " ");
sum++;
}
System.out.println("\nAntal: " + sum);
}
}
}