[RESOLVIDO] Gerar 10 números aleatórios entre 1 e 20 sendo que 5 sejam pares e 5 ímpares
7 respostasResolvido
java
M
maryhanakuhn
Preciso gerar uma lista de 10 números aleatórios entre 1 e 20, sendo que 5 números precisam ser pares e 5 ímpares. Consegui gerar 10 números aleatórios dos 20, mas não estou conseguindo fazer com que imprima apenas 5 pares e 5 ímpares na mesma linha.
Para descobrir se o número é par, basta utilizar: n % 2 == 0
Pegamos o resto da divisão de n por 2 e comparamos se é 0.
Se retornar true é par, se retornar false é ímpar
M
maryhanakuhn
Quando a isso tranquilo, não estou conseguindo fazer com que ele imprima 5 ímpares e 5 pares.
Ajustei o código abaixo, mas ele só imprime par (meio óbvio pq adicionei o if que verifica se é divisível por 2). Como faço para ele imprimir 5 ímpares, além de 5 pares?
publicstaticvoidmain(String[]args){List<Integer>par=Arrays.asList(2,4,6,8,10,12,14,16,18,20);//numeros pares possíveis, podia ser inicializado com o forList<Integer>impar=Arrays.asList(1,3,5,7,9,11,13,15,17,19);// numeros impares possíveis, podia ser inicializado com o forCollections.shuffle(par);// Embaralha paresCollections.shuffle(impar);// Embaralha imparesList<Integer>resultado=newArrayList<>(par.subList(0,5));// Obtem 5 pares da lista embaralhada de paresresultado.addAll(impar.subList(0,5));// Obtem 5 impares da lista embaralhada de imparesCollections.shuffle(resultado);// Embaralha o resultado (senão seriam sempre 5 pares seguidos de 5 impares)resultado.forEach(System.out::println);//Imprime os valores}
P
Solucao aceita
pmlm
Como teu professor deve querer
publicstaticvoidmain(String[]args){List<Integer>lista=newArrayList<Integer>();intpares=0;intimpares=0;intmax=5;while(lista.size()<10){intnumero=1+(int)(Math.random()*20);if(!lista.contains(numero)){if(numero%2==0&&pares<max){//so adiciona se numero for par e ainda nao estiverem todos os pares adicionadoslista.add(numero);pares++;}elseif(numero%2!=0&&impares<max){//so adiciona se numero for impar e ainda nao estiverem todos os impares adicionadoslista.add(numero);impares++;}}}for(Integern:lista){System.out.print(n+" ");}