JavaRush /Blogue Java /Random-PT /Como Exponenciar em Java

Como Exponenciar em Java

Publicado no grupo Random-PT
Olá Mundo! Pesquisar algo no Google ou pedir ajuda em um fórum é algo comum até mesmo para um programador experiente. Mas existem tópicos em desenvolvimento que são tão básicos e simples que até mesmo um iniciante deveria conhecê-los. E aqui está um desses tópicos. Hoje falaremos sobre como a exponenciação é realizada em Java. Como fazer exponenciação em Java - 1Vamos imaginar por um segundo que você recebeu uma tarefa: encontrar um número até certo ponto. Parece bastante simples, mas como implementar a solução? Vejamos o método mais comum e várias alternativas. E antes de “mergulharmos” nas soluções, vamos primeiro lembrar o que é elevar um número a uma potência: Como fazer exponenciação em Java - 2Elevar a uma potência é uma ação em que um número é multiplicado por si mesmo várias vezes. O número que é multiplicado é chamado de base, e o número de vezes que ele é multiplicado é chamado de expoente. Bem, o resultado desta automultiplicação da base é chamado de exponenciação. Por exemplo, para 8 é 2 elevado à terceira potência, já que 2x2x2=8. Elevar um número à segunda potência indica que estamos a torná-lo um fator duas vezes e, como regra, esta potência é chamada de potência quadrada. Ou seja, 4 ao quadrado = 4x4 = 16. Portanto, atualizamos nossa memória e agora passamos diretamente para maneiras de usar pow em Java - um método para exponenciação.
  1. Pow matemática

    A maneira mais fácil de resolver esse problema é usar a classe Math. Esta é a solução que você usará na maioria dos casos.

    Como Exponenciar em Java - 3

    A classe Math contém métodos relacionados à trigonometria, geometria e outros aspectos da matemática. Nele, os métodos são implementados como estáticos, então você pode chamá-los imediatamente através do nome da classe Math sem criar um objeto de classe.

    Como é a exponenciação:

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Tivemos que usar uma conversão de tipo (int), pois este método da classe Math retorna um valor do tipo double (os argumentos também são double, mas ali é usada uma conversão de tipo implícita).

    E agora - um bônus: opções adicionais.

  2. O valor do quadrado de um número

    Vamos começar, talvez, com a coisa mais simples.

    É assim que o método de quadratura é escrito:

    public static int pow(int value){
       return value*value;
    }

    Ligue para principal:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    Isso é tudo - nada complicado ou desnecessário.

  3. Número elevado à potência

    Mas o número ao quadrado não é tudo de que precisamos. Na maioria das vezes, em nosso trabalho, precisaremos de um número até certo ponto, então o que se segue é uma versão um pouco mais complicada, mas com um valor java pow personalizado:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    O algoritmo é muito simples: definimos o resultado do ponto inicial e depois o multiplicamos pelo nosso valor quantas vezes o loop com powValue for executado (powValue número de vezes)

  4. Recursão

    O próximo método será um pouco mais exótico, mas não menos legal.

    Como Exponenciar em Java - 4

    A recursão é um recurso que permite que um método chame a si mesmo. Em Java, tal mecanismo está presente e tais métodos são chamados recursivos.

    Muitos, senão todos, problemas algorítmicos podem ser resolvidos recursivamente. Este também não será exceção, então vamos dar uma olhada em como você pode elevar um número a uma determinada potência de forma recursiva:

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    Como podemos ver, temos dois casos:

    1. A condição para sair da recursão, ou em outras palavras, quando nosso valor de grau atingir um, começaremos a ser jogados para trás.
    2. O próprio mecanismo de multiplicação do valor pelo resultado da chamada do mesmo método, mas com powValue - 1.

    Bem, agora é hora de olhar para métodos mais preguiçosos, ou seja, os métodos “prontos para usar”.

  5. Grande número inteiro

    O objetivo principal da classe BigInteger é armazenar inteiros de tamanho arbitrário, mas ao mesmo tempo possui vários métodos aritméticos que permitem trabalhar com esses números enormes (ou não tão grandes).

    Como Exponenciar em Java - 5

    Você pode ler mais sobre BigInteger neste artigo .

    Então, como seria a exponenciação usando BigInteger em Java?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    Bastante simples e sem problemas, não é?

Bem, isso é tudo por hoje! Agora você conhece várias maneiras de exponenciar. Concordo, este não foi um assunto difícil :)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION