para entrar no while o y deve ser maior igual a 1 e a variável está com 0
S
SandroperiPJ
Blz, mas agora ele entra num looping sem fim. como resolvo ?
P
psilvaPJ
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”]publicstaticvoidmain(String[]args){intx=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
SandroperiPJ
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
psilvaPJ
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
ublicstaticvoidmain(String[]args){intx=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,
publicstaticvoidmain(String[]args){intx=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