Bom dia, estou voltando a praticar java com o básico, depois de um longo tempo, voltei a um exercício que já havia feito a uns 2 anos atrás, e não to conseguindo desenvolver a lógica para resolve-lo.
import javax.swing.JOptionPane;
public class Exercicio5 {
public static void main(String args[]) {
int vetor[] = new int[16];
int valor = 0;
int i = 0;
int cpc = 0;
String x = " ";
;
for (i = 0; i < vetor.length; i++) {
valor = Integer.parseInt(JOptionPane.showInputDialog("Digite um valor para o vetor"));
vetor[i] = valor;
x += valor + " ";
if((vetor[i] == vetor[i + 3]) && (vetor[i + 1] == vetor[i + 2]))
cpc ++;
{}
}
JOptionPane.showMessageDialog(null, x + "\n" + cpc);
}
}
//5o) Dado um vetor do tipo int de 16 elementos, a serem digitados aleatoriamente, elaborar um programa, em linguagem Java, capaz de apresentar a quantidade de capicuas de 4 elementos existentes ao longo desse vetor
// (capicua: número que representa o mesmo valor quando lido da esquerda para a direita e vice-versa). Exemplo: Vetor digitado
// índices: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// elementos: 0 1 1 0 3 2 4 4 2 2 4 7 7 7 7 7;
// Total de Capicuas: 5
Levando em conta que estou inserindo os valores do exemplo, eu já sei o que está acontecendo, provavelmente, quando o vetor chega na posição 13, que seria o elemento de número 7, ele passa pelo if que verifica a posição vetor[i] == vetor[i+3] q seria vetor[13 + 3] [16] uma posição que não existe no vetor. Acho que uma opção seria aumentar o tamanho do vetor, e dizer pra quando chegar na posição x do vetor, sair do loop e não pedir pra inserir mais números, mas acho q n seria a forma correta de corrigir esse erro.