Jogar uma variável em cima de outra variável!

:frowning: Gostaria de saber como faço para jogar uma variável de valor y em uma variável de valor x, por exemplo assim:

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

imprima y.

O programa deveria jogar o VALOR DE Y EM X e continuar até que y tenha o valor final de 1.

Por favor me ajudem :idea: :cry:

Hum… qual a dificuldade?

se eu entendi bem


class SuaClasseMain {

  public static void main(String []args) {
        SuaClasseCalculaY ccy = new SuaClasseCalculaY();
        System.out.println(ccy.calculaY(2));
  }


}

classe SuaClasseCalculaY {

    public double calculaY(int x) {
         if (this.isImpar(x)) {
            return((3 * x) + 1);
         } else {
            return(x / 2);
         }
    }

     public boolean isImpar(int number) {
         return(!((number % 2) == 0)));
     }
}

é isso??

agora é so fazer um for ou o que você preferir para testar todos os “y”

cara sua pergunta tá um tanto distorcida, mas pelo que eu entendi vc quer fazer algo do tipo?

int x = 3;
int y = x+2;

só que usando seu exemplo? é isso?

Desculpe peron mas eu não cheguei nesse nível ainda mas, deixe eu ver se entendi!!!
O (this.isImpar) ´como se eu estivesse dizendo se meu número fosse impar?
E esse modo também está certo?
if ( x % 3 == 0)

Isso eu também não entendi!
public boolean isImpar(int number) {
return(!((number % 2) == 0)));

Obrigado cara pela atenção!!!

è sim jailson, :smiley: , obrigado

J a i son <------ :smiley:

desculpe, compliquei.

o % 3 nao, porque 6 % 3 é 0 mas 6 é par…

Este método verifica se um numero é impar ou não:

      public boolean isImpar(int number) {
           return(!((number % 2) == 0)));
      }

poderia ser assim:

      public boolean isImpar(int number) {
           return((number % 2) != 0);
      }

que significa % -> resto da divisao, portanto, se o resto da divisao de number por 2 for diferente de zero, é impar.

PS: voce poderia fazer direto sim…

o this significa instancia da classe, ou seja, chamar um metodo dela mesma, e poderia nao ser colocado.

Eu também usei 2 classes, uma só com o método main, que vc usa pra rodar o seu prog java, e outra com a regra do cálculo… vc poderia fazer tudo numa só…

arrumando entao, ficaria:

class SuaClasseMain {
 
   public static void main(String []args) {
         //instancia a classe que faz o calculo
         SuaClasseCalculaY ccy = new SuaClasseCalculaY();
         //faz o calculo e imprime na saida padrao
         int x = 2;
         int resultado;
         resultado = ccy.calculaY(x);
         System.out.println(resultado);
   }
 }
 
 classe SuaClasseCalculaY {
 
     //retorna um inteiro (sempre vai ser né? nao tinha me ligado disso)
     public int calculaY(int x) {
          
          //verifica se é impar
          if  (x % 2 != 0) {
             return((3 * x) + 1);
          } else {
             return(x / 2);
          }
     }
 }

melhorou?

qquer duvida, fique a vontade!

Peron, vc foi de muita ajuda cara, valeu mesmo :thumbup:

Só usar matematica :slight_smile:

y = (x%2) ? (x/2) : (3*x+1);

ou

y = (-x/2)*(x%2-1) + (3*x+1)*(x%2);