Ajuda em exercício, please!

2 respostas
H

Bom galera tô perguntando mesmo as coisas aqui... espero que não seja chato tantas duvidas iniciantes.
tenho estudado bastante e nao estou fazendo nenhum curso, então tenho a esperança de que vocês me ajudem.

Na apostila da Caelum, no capitulo do IF ELSE FOR WHILE tem o seguinte exercício:

5-) Escreva um programa que, dada uma váriável x (com valor 180, por exemplo), temos y de acordo com a seguinte regra:

se x é par, y = x / 2
se x é impar, y = 3 * x + 1
imprime y

O programa deve então jogar o valor de y em x e continuar até que y tenha o valor final de 1. Por Exemplo, para x=13, a saída será:
40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

O QUE EU FIZ:

public class XeY {
	
	public static void main(String[] args) {

		
	
		int x = 180;
		int y = 0;
				
		if(x % 2 == 0) {
			y = x/2;
			}

		if (x % 2 != 0) {
			y = 3 * x + 1;
			}

		
		System.out.println(y);
	}
}

Muito bem... simples demais... coloquei o X como 180 e tive o y como 90.

Agora nao entendi essa segunda parte do enunciado... era pra eu usar for??? como??
podem me ajudar??
valeu!!!!!!

2 Respostas

davidbuzatto

Resolvido :D só falta vc ver no exercício como o x deve ser atualizado pq se naum isso vai cair num loop infinito...

public class XeY {
 	
 	public static void main(String[] args) {
 
 		int x = 180;
 		int y = 0;
 		
		while ( y != 1 ) {

	 		if ( x % 2 == 0 ) {
 				y = x / 2;
	 		} else {
				y = 3 * x + 1;
			}
 		
	 		System.out.println( y );

		}

 	}

 }
H

Valeu man… deu 90 do mesmo jeito.
O que eu nao entendí é essa parte do enunciado do exercicio:

O programa deve então jogar o valor de y em x e continuar até que y tenha o valor final de 1. Por Exemplo, para x=13, a saída será:
40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

acho q ela sugere um FOR, não??? mas como?
Eu não entendi o enunciado…

Criado 29 de abril de 2006
Ultima resposta 30 de abr. de 2006
Respostas 2
Participantes 2