Eu quero implementar um programa que lê quatro valores inteiros e indique quantos são diferentes (1,2,3 ou 4), são pares e são ímpares. Do tipo : Valores ? 32 -3 32 234 Diferentes=3, Pares=3, Impares=1.
Sei que para calcular numeros pares e apenas fazer (num%2 = 0) mas estou com problemas em fazer esta condiçao para 4 valores e juntar no fim, e nao sei como definir uma condição para calcular os numeros diferentes.
Deixa eu ver se entendi: se você passou os números 32 -3 32 234, então ao meu ver são 3 pares, 1 ímpar e dois diferentes, correto? O 32 repete, então não seria contado. Ou seria uma vez só?
Esse jeito if (((v1 % 2) == 0 ) && ((v2 % 2) == 0) && ((v3 % 2) == 0) && ((v4 % 2) == 0)){ além de ser muito mais trabalhoso, vai te deixar maluco. Pode dar um pouquinho só de trabalho, mas eu jogaria esses números em um arrayList e faria as contas. Faria um loop, que contaria os pares, ímpares e diferentes.
eu nao posso utilizar arrays, so posso utilizar if’s :? daí a condusao, e o 32 conta como um so daí ser 3 numeros diferentes, como e que posso juntar isto tudo no codigo que ja tenho feito?
Cara vc pode usar um array e colocar os 4 valores lá…
Faz um for de 4 ciclos (obviamente ;; ), nesse ciclo faz 1 if se é para ver se é par, e coloca apenas um else.
Como o if está no laço ele irá verifica se os 4 valores são par, se não for é ímpar. E faz 2 variáveis extra (qtdPar e qtdImpar), coloca a variavel qtdPar dentro do if somando 1 e qtdImpar colocar no else somando 1(Ai no final vc tem a quantidade).
Isso resolve o problema do código acima, quando eu pensar na lógica para a outra parte do problema eu falo…
Entendeu??
Qualquer duvida só falar…
Mais em fim, é só fazer usando a mesma logica, que vc uso para fazer a compração…(ou seja vai ter que comparar 1 por 1).
Ps: se prof. deve ter feito isso para vc aprender usar o IF, então nunca faça isso em um programa de verdade… BLZ
Eu faria assim:(Só a parte de comparação)
[code]public class ArrayB {
public static void main(String[] args) {
int[] numero = new int[4];
int qtdPar = 0;
int qtdImpar =0;
Scanner in = new Scanner(System.in);
Eu não entendi muito bem, acho que posso te ajudar. Esses valores diferentes você quer dizer o que? A e o usuário tem que digitar cada valor por vez ou pode digitar os 4 valores de uma vez só? O número pode repetir e são somente inteiros?
if(v1 != v2)
diferentes++;
if(v3 != v1 && v3 != v2)
diferentes++;
if(v4 != v1 && v4 != v2 && v4 != v3)
diferentes++;[/code]Inicializei a variável diferentes com o valor 1, me baseando no exemplo que você deu, o que quer dizer que mesmo que todos números sejam iguais, vai dizer que há 1 número diferente.
Fiz um exemplo usando for (que valeria para um vetor de qualquer tamanho) e um só com if, que vale só para vetores de tamanho 4…
Dei uma comentada, se não entender algo pergunte…
public class Numeros {
static int[] vetor = {32,-3,32,234};
public static void main(String args[]) {
solucao1();
solucao2();
}
public static void solucao1(){
int pares = 0, impares = 0, diferentes = 0;
//percorre o vetor inteiro
for(int i=0 ; i<vetor.length ; i++){
//testa se é par ou ímpar
if(vetor[i]%2 == 0){
pares++;
}else{
impares++;
}
//testa se é igual a algum outro valor do vetor
boolean ehDiferente = true;
for(int j=i-1 ; j>=0 ;j--){//percorre o vetor para trás da posição i-1 até 0
if(vetor[j]==vetor[i]){
ehDiferente = false;
}
}
if(ehDiferente){
diferentes++;
}
}
//Imprime o resultado
System.out.println("*** Método com FOR ***");
System.out.println("Pares: " + pares);
System.out.println("Ímpares: " + impares);
System.out.println("Diferentes: " + diferentes);
}
public static void solucao2(){
int pares = 0, impares = 0, diferentes = 0;
//Testa o primeiro valor
if(vetor[0]%2 == 0){
pares++;
}else{
impares++;
}
diferentes++; //O primeiro é obrigado a ser diferente
//Testa o segundo valor
if(vetor[1]%2 == 0){
pares++;
}else{
impares++;
}
if(vetor[0] != vetor[1]){
diferentes++;
}
//Testa o terceiro valor
if(vetor[2]%2 == 0){
pares++;
}else{
impares++;
}
if(vetor[2] != vetor[1] && vetor[2] != vetor[0]){
diferentes++;
}
//Testa o quarto valor
if(vetor[3]%2 == 0){
pares++;
}else{
impares++;
}
if(vetor[3] != vetor[2] && vetor[3] != vetor[1] && vetor[3] != vetor[0]){
diferentes++;
}
//Imprime o resultado
System.out.println("\n*** Método com vários IF's ***");
System.out.println("Pares: " + pares);
System.out.println("Ímpares: " + impares);
System.out.println("Diferentes: " + diferentes);
}
}