Ir ao conteúdo
  • Cadastre-se

Java Java. Estou com dificuldade para validar a quantidade de pares comparado com X.


Posts recomendados

Dado um vetor de inteiros n e um inteiro qualquer x. Construa um algoritmo que determine o número de elementos pares do vetor que tem uma diferença igual ao valor de x.


Exemplo:

Entrada:

n = [1, 5, 3, 4, 2]

Saída:

3

Explicação:

Existem 3 pares de inteiros no vetor com uma diferença de 2: [5, 3], [4, 2] e [3, 1].

 

Segue o código:

import java.util.Scanner;

public class Pares {

public static void main(String[] args) {
     
    try (Scanner sc = new Scanner(System.in)) {
        int i, X, N;        
        
        System.out.println("Digite a quantidade de números: ");
        N = sc.nextInt();
        
        int[] vetor = new int[N];
        
        for (i = 0; i < N; i++) {
            System.out.println("Digite um número: ");
            vetor[i] = sc.nextInt();
        }
        System.out.println("Digite um valor para x: ");
        X = sc.nextInt();
    }

}
}

 

Desde já agradeço. 🙂

Link para o comentário
Compartilhar em outros sites

  • mês depois...
import java.util.Scanner;

public class Pares {
  public static void main(String[] args) {
    int i, X, N;
    int flag1; //Primeiro indice do vetor
    int flag2; //Segundo indice do vetor
    int counterPairs = 0; //Conta a quantidade de vezes em que vetor[flag1] - vetor[flag2] = X
    int counterFlag2 = 0; //Auxilia flag2 sempre andar na frente da flag1

    try (Scanner sc = new Scanner(System.in)) {
      System.out.println("Digite a quantidade de números: ");
      N = sc.nextInt();

      int[] vetor = new int[N];

      for (i = 0; i < N; i++) {
        System.out.println("Digite um número: ");
        vetor[i] = sc.nextInt();
      }
      System.out.println("Digite um valor para x: ");
      X = sc.nextInt();

      for(flag1 = 0; flag1 < vetor.length - 1; flag1++){ 
        for(flag2 = 1 + counterFlag2; flag2 < vetor.length; ++flag2){
          if(Math.abs(vetor[flag1] - vetor[flag2]) == X) { //Math.abs() retorna valor absoluto, evitando negativos
            counterPairs++;                                  															
          }
        }
        counterFlag2++;
      }
      System.out.println(counterPairs);
    }
  }
}
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!