1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como, recebendo como parâmetro um nº, verificar se ele é potência de 2 e retornar a potência?

O exercício é este:

Escreva um metodo que, para um dado valor inteiro positivo, passado como parâmetro,verifica se tal valor e uma potência de 2. Em caso afirmativo, retorna o valor da potência.
Caso contrário, retorna -1.

Obrigado a todos que tentaram ajudar! Creio que consegui fazer.A ideia era que, se eu passasse 8 como parâmetro, o método retornasse 3, pois 8=2³. Para tal, verifiquei se o número era par; se sim,divido por 2 e acrescento 1 em um contador.Faço isso até o número ser igual a 2.Se for, retorno o contador; se não, retorno -1.

public static int receb(int n){

if (n%2 != 0) return - 1;
int contador = 1;
while(n != 2){
    n = n/2;
    if (n%2 == 0){
         contador++;
         continue;
    }     
    else return -1;
}

return contador;
}
  • posta o que vc já fez que nós te ajudamos.

    Johnatan Dantas   15 de fev de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java matemática ou faça a sua própria pergunta.