O que há de errado?

5 respostas
S

Olá Pessoal,

Eu estou tentando escrever esta equação e não consigo, o código compila sem erros mas na hora de executar nada aparece… alguém pode me dizer por que?

è o seguinte :

quando X=n, quando X for par, então Y=X/2, quando X for impar entao Y=X*3 + 1, até Y=1.

class equa { public static void main(String args[]) { int x=16, y=0; while (y>=1) { if(x%2==0) { y=x/2; x=y; System.out.println(" y = " + y); } else { y=x*3 + 1; x=y; System.out.println(" y = " + y); } } } }

5 Respostas

K

para entrar no while o y deve ser maior igual a 1 e a variável está com 0

S

Blz, mas agora ele entra num looping sem fim. como resolvo ?

P

a condicao do while não deveria ser (y > 1) ??

quando X=n, quando X for par, então Y=X/2, quando X for impar entao Y=X*3 + 1, até Y=1.

pois se a condicao for y >= 1, quando y for igual a 1 o loço tambem é executado e ai comeca o loop infinito…

Cara, tomei a liberdade de fazer algumas alterações, ve se e isso que vc espera:

[color=green]

public static void main(String [] args){

int x=17;//, y=17;

while (x>1)

{

if(x%2==0)

{

x=x/2;

//x=y;

System.out.println(" x = " + x);

}

else

{

x=x*3 + 1;

//x=y;

System.out.println(" x = " + x);

}

}

}

[/color]

S

Kra, eu agradeço testei o código que vc me mandou, ele funcionou direitinho só que eu preciso fazer o que vc fez com duas variáveis, ou seja, acumular o valor de Y em X, pois é um exercício e eu não estou conseguindo fazer.

mesmo assim valeu.

P

cara…eu nao entendi direito o que vc quer…
mas vamos la…


guardar o valor de x em y
o codigo abaixo faz +/- o que vc mandou no primerio post

ublic static void main(String [] args){

int x=17, y=0;

while (x>1)

{

if(x%2==0)

{

y=x/2;

x=y;

System.out.println(" y = " + y);

}

else

{

y=x*3 + 1;

x=y;

System.out.println(" y = " + y);

}

}

}

se fosse para acumular o resultado em y,

public static void main(String [] args){

int x=17, y=0;

while (x>1)

{

if(x%2==0)

{

x=x/2;

y=y + x;

System.out.println(" y = " + y);

}

else

{

y=x*3 + 1;

y=y + x;

System.out.println(" y = " + y);

}

}

}

não sei se é isso…
me desculpe… mas realmente eu nao entendi a sua duvida

Criado 4 de agosto de 2004
Ultima resposta 4 de ago. de 2004
Respostas 5
Participantes 3