Você não precisa mexer no X também? Não sei como é sua fórmula.
Fernando_Generoso_da
Dá uma olhada na tua lógica… Y será sempre 25, sempre > 1, ou seja, sempre entrando no while…
Fernando
N
Nunts_Mahal
CORREÇÃO
publicclassfj7{publicstaticvoidmain(String[]args){intY=2;// VOCÊ USOU UMA EXPRESSÃO NO WHILE EM QUE O Y INICIALMENTE TINHA ALGUM VALOR, //INICIALIZE O Y COM ALGUM NÚMERO, SE NÃO PUDER ALTERAR, USE OUTRA VARIÁVEL DE CONTROLEintX=50;while(Y>1){if(X/2==0){Y=X/2;}// TODO IF E ELSE TEM QUE TER UM BLOCO DE ÍNICIO E FIM, FECHE AQUI PARA FAZER UM ELSEelse{Y=3*X+1;}//FECHE AQUI PARA O ELSE NÃO SAIR ERRADOSystem.out.println(Y);}}}
:D
N
Nunts_Mahal
Não sei bem o que seu código faz pkê você n comentou, mas
os erros tão aí, modifique , se o Y não puder começar com um número pois será utilizado no decorrer do programa, faça uma varíavel de controle
pra isso ; e n esqueça de postar aqui o resultado
gustavomurad
Você diz que X é do tipo inteiro e inicializa com 50, mas em nenhum momento você altera o valor de X, sempre ele vai cair no (X % 2 == 0) e vai te retornar sempre 25.
O que esse algorítimo deveria fazer?
pmlm
Isso também está errado.
Para o problema em causa só precisas de uma variável, que é o número inicial e que vai sendo sempre reatribuida até chegar a 1.
Aparentemente (foi o que eu fiz), o código visa implementar aquela regra que diz que, para qualquer número, podemos chegar a 1 fazendo sempre o seguinte:
se for impar multiplica por 3 e soma 1
se for par divide por 2
gustavomurad
pmlm:
Aparentemente (foi o que eu fiz), o código visa implementar aquela regra que diz que, para qualquer número, podemos chegar a 1 fazendo sempre o seguinte:
se for impar multiplica por 3 e soma 1
se for par divide por 2
Matou a pau!
Maureli
gustavomurad:
pmlm:
Aparentemente (foi o que eu fiz), o código visa implementar aquela regra que diz que, para qualquer número, podemos chegar a 1 fazendo sempre o seguinte:
se for impar multiplica por 3 e soma 1
se for par divide por 2
Matou a pau!
É esse mesmo meu código, poriso uso as duas variaveis X e Y, se X for par Y = X / 2, se X for impar Y = 3 * X + 1
Maureli
public class fj7{
public static void main (String[] args){
int Y = 2;
int X = 50;
while(Y > 1){
if (X % 2 == 0){
Y = X / 2;
}
else{
Y = 3 * X + 1;
}
System.out.println(Y);
X = Y; //resolvi o problema, fiz o X receber o Y, ai X pode continuar fazendo o teste de par e impar
}
}
}
Obrigado a todos pela ajuda.
pmlm
Maureli:
X = Y; //resolvi o problema, fiz o X receber o Y, ai X pode continuar fazendo o teste de par e impar
Por isso eu tinha dito acima que só precisavas de uma variável… Assim tens duas, mas com o mesmo valor.
Maureli
pmlm:
Maureli:
X = Y; //resolvi o problema, fiz o X receber o Y, ai X pode continuar fazendo o teste de par e impar
Por isso eu tinha dito acima que só precisavas de uma variável… Assim tens duas, mas com o mesmo valor.
O exercicio pedia para usar duas variáveis, X e Y.