Una pregunta de programación: 1487 1847 4817 4871 7481 7841 8147 8741 ¿Pueden tres números seleccionados de estos 8 números formar una secuencia aritmética?
Primero ordene de pequeño a grande, luego haga un triple bucle
Resultado: 1487 4817 8147
public void test() {
/ / Secuencia ordenada
int[] nums = new int[]{1487, 1847, 4817, 4871, 7481, 7841, 8147, 8741};
Lista > resultados = new ArrayList<>();
for (int i = 0; i < nums.length - 2; i ++) {
for (int j = i + 1; j < nums.longitud - 1; j ++) {
para (int k = j + 1; k < nums.longitud; k ++) {
if (nums[k] - nums[j] == nums[j] - nums[i]) { //Es una secuencia aritmética
List
resultado.add(nums[i]);
resultado.add(nums[j]);
resultado.add(nums[k] ) ;
resultados.add(resultado);
System.out.printf("%d %d %d\n", nums[i], nums[j], nums [k]);
break;
} else if (nums[k] - nums[j] > nums[j] - nums[i]) { //Tercero El número es mayor que el número de secuencias aritméticas, salta de este bucle
break;
}
}
}
}
if (results.size() == 0) { //Sin resultado de adaptación
System.out.println("no");
}
}