Alguem poderia ajudar nesse algoritmo: Crie um programa que lê três inteiros e informa VERDADEIRO se apenas o maior deles é par
ou se o menor deles é ímpar ou informa FALSO em caso contrário.
Exercicio de logica
9 Respostas
par é quando o resto da divisao por 2 é 0
fazer o maior é facil … é so testar via > … a classe Collections tem suporte a isso tb se vc quiser, ou é a classe Math (não lembro)
pra ler use a classe Scanner tente começar q eu ajudo
par é quando o resto da divisao por 2 é 0fazer o maior é facil ... é so testar via > ... a classe Collections tem suporte a isso tb se vc quiser, ou é a classe Math (não lembro)
pra ler use a classe Scanner tente começar q eu ajudo
cara eu fiz assim(vc n sabe outra maneira de resolver?):
package exercicio;
import java.util.Scanner;
/*Crie um programa que lê três inteiros e informa VERDADEIRO se apenas o maior deles é par
ou se o menor deles é ímpar ou informa FALSO em caso contrário.*/
public class Exerc01 {
private Scanner input = new Scanner(System.in);
private int maior, menor;
public boolean obter() {
boolean resp = false;
System.out.println("Digite 3 numeros: ");
int n1 = Integer.parseInt(input.next());
int n2 = Integer.parseInt(input.next());
int n3 = Integer.parseInt(input.next());
if ((n1 > n2) && (n1 > n3)) {
maior = n1;
if ((maior % 2 == 0) && (n2 % 2 == 1) && (n3 % 2 == 1))
resp = true;
}
if ((n2 > n1) && (n2 > n3)) {
maior = n2;
if ((maior % 2 == 0) && (n1 % 2 == 1) && (n3 % 2 == 1))
resp = true;
}
if ((n3 > n1) && (n3 > n2)) {
maior = n2;
if ((maior % 2 == 0) && (n1 % 2 == 1) && (n2 % 2 == 1))
resp = true;
}
if ((n1 < n2) && (n1 < n3)) {
menor = n1;
if ((menor % 2 == 1) && (n2 % 2 == 0) && (n3 % 2 == 0))
resp = true;
}
if ((n2 < n1) && (n2 < n3)) {
menor = n2;
if ((menor % 2 == 1) && (n1 % 2 == 0) && (n3 % 2 == 0))
resp = true;
}
if ((n3 < n1) && (n3 < n2)) {
menor = n3;
if ((menor % 2 == 1) && (n1 % 2 == 0) && (n2 % 2 == 0))
resp = true;
}
System.out.printf("Maior: %d\nMenor: %d", maior, menor);
return resp;
}
public static void main(String args[]) {
Exerc01 e = new Exerc01();
if (e.obter())
System.out.printf("\nResposta VERDADEIRA");
else
System.out.printf("\nResposta FALSO");
}
}
descubra qual é o maior 1º, dps veja quais elementos são pares e de a resposta.
fala guilhr,
o que eu entendi é isso aqui:
public static void main(String[] args) {
// TODO code application logic here
Scanner sc= new Scanner(System.in);
int num=0;
int maior=0;
String resultado=null;
System.out.println("Insira 3 numeros");
for(int i=0; i<3; i++){
num=sc.nextInt();
if(maior<num){
maior=num;
}
if(maior%2==0){
resultado = "Verdadeiro";
}else{
resultado = "Falso";
}
}
System.out.println(resultado);
}
se tiver faltanto algo me fale que eu te ajudo! flwwww
segundo o anunciado O maior OU o menor serem pares= VERDADEIRO
caso contrario = FALSO.
par é quando o resto da divisao por 2 é 0fazer o maior é facil ... é so testar via > ... a classe Collections tem suporte a isso tb se vc quiser, ou é a classe Math (não lembro)
pra ler use a classe Scanner tente começar q eu ajudo
cara eu fiz assim(vc n sabe outra maneira de resolver?):
tem assim
vc pode criar esse método pra te auxiliarpublic int max(int ... values) {
int max = values[0];
for(int v : values)
max = Math.max(max,v);
return max;
}
public boolean isPar(int value) {
return value % 2 == 0;
}
ai é so fazer
if (isPar(max(n1,n2,n2)))
//....
EDIT.:
se vc não quiser usar a classe Math (o que não tem nada de +) ... vc tb pode implementar o método de pegar o valor maximo assim
public int max(int ... values) {
int max = values[0];
for(int v : values)
max = (v > max) ? v : max;
return max;
}
fala guilhr,o que eu entendi é isso aqui:
public static void main(String[] args) { // TODO code application logic here Scanner sc= new Scanner(System.in); int num=0; int maior=0; String resultado=null; System.out.println("Insira 3 numeros"); for(int i=0; i<3; i++){ num=sc.nextInt(); if(maior<num){ maior=num; } if(maior%2==0){ resultado = "Verdadeiro"; }else{ resultado = "Falso"; } } System.out.println(resultado); }se tiver faltanto algo me fale que eu te ajudo! flwwww
segundo o anunciado O maior OU o menor serem pares= VERDADEIRO
caso contrario = FALSO.
cara, o programa tem com saida: se somente maior for PAR (entre os 3 numero) a resposta é Verdadeira OU o somente menor for IMPAR a resposta tambem é verdadeira
Caro guilhr,
eu pensei que era um ou outro, se o maior numero for par OU menor numero for impar = VERDADEIRO
se o maior numero for impar OU o menor numero for par = FALSO.
ai fiz um ou outro não precisa ser absolutamente os dois para ser verdadeiro pelo menos é assim que está no seu eniciado.
flw se não for isso me avise que eu faço o programinha de outro jeito!!!
de qualquer forma é bem simples esse algoritmo.
flwww!
Caro guilhr,eu pensei que era um ou outro, se o maior numero for par OU menor numero for impar = VERDADEIRO
se o maior numero for impar OU o menor numero for par = FALSO.ai fiz um ou outro não precisa ser absolutamente os dois para ser verdadeiro pelo menos é assim que está no seu eniciado.
flw se não for isso me avise que eu faço o programinha de outro jeito!!!
de qualquer forma é bem simples esse algoritmo.flwww!
Diego, é isso mesmo q vc entendeu, mas tem um restrição:
se o MAIOR numero for PAR, para a resposta ser VERDADEIRA os outros 2 numeros menores não pode ser PAR.
OU
se o MENOR numero for IMPAR, para a resposta ser VERDADEIRA os outros 2 numeros maiores não pode ser IMPAR.
Diego, é isso mesmo q vc entendeu, mas tem um restrição: se o MAIOR numero for PAR, para a resposta ser VERDADEIRA os outros 2 numeros menores não pode ser PAR. OU se o MENOR numero for IMPAR, para a resposta ser VERDADEIRA os outros 2 numeros maiores não pode ser IMPAR.
ahh agora eu entendi ^^ ai fica facil...
public class Main {
public static void main(String ... args) {
List<Integer> numeros = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
System.out.println("Digite 3 numeros: ");
numeros.add(Integer.parseInt(input.next()));
numeros.add(Integer.parseInt(input.next()));
numeros.add(Integer.parseInt(input.next()));
System.out.println(teste(numeros));
}
public static boolean teste(Collection<Integer> numeros) {
boolean maxIsPar = Collections.max(numeros) % 2 == 0;
boolean minIsImpar = Collections.min(numeros) % 2 != 0;
return maxIsPar && minIsImpar;
}
}
em resumo.... sempre que o menor for impar e o maior for par, sera verdadeiro