antonio-abrantes
9/6/2016 - 1:56 AM

Buscar um ou mais PAs dentro de um conjunto de numeros

Buscar um ou mais PAs dentro de um conjunto de numeros

public class App {

	public static void main(String[] args) {

		int[] conjunto = new int[100];
		int[] temp = new int[100];
		int[][] matriz = new int[100][100];
		int i, j, g, z, cont = 0, tamanho, razao, tMat = 0, maior = 0, maiorMat = 0;
		
		tamanho = Console.readInt();
		
		for(i = 0; i < tamanho; i++){
			conjunto[i] = Console.readInt();
		}
				
		for(i = 1; i < tamanho-1; i++){
			g = 0;
			razao = conjunto[i] - conjunto[i-1];
			cont = 0;
			if(conjunto[i] + razao == conjunto[i +1]){
				for(j = i; j <= tamanho; j++ ){
					if(j == i){
						temp[g] = conjunto[i-1];
						cont++;
						g++;
					}
					if(conjunto[j] - conjunto[j-1] == razao){
						cont++;
						temp[g] = conjunto[j];
						g++;
					}else{
						i = i + cont-1;
						break;
					}
				}
			}			
			if(cont >= 3){ 
				if(cont >= maior){ //Verifica qual a maior PA
					maior = cont;  //Guarda a quantidade de valores da maior PA
					maiorMat = tMat; //Guarda a linhada matriz onde ficara a maior PA
				}
				
				for(z = 0; z < cont; z++){					
					matriz[tMat][z] = temp[z]; //Jogar a PA encontrada na matriz...
				}
				tMat++;
			}			
		}
		for(j = 0; j < maior; j++){ // Imprime apenas a maior PA encontrada...
			System.out.print(matriz[maiorMat][j]+" ");
		}
	}
}