1
resposta

[Dúvida] Dúvida sobre a Potência em si.

Olá pessoal, estava tentando analisar sobre esse código de potência e na verdade fiquei em dúvida de como funciona a potência em si, e o que cada linha do código representa. Achei meio confuso.

Eu até fiz aqui conforme pedia ali, porém, ainda assim, fiquei sem saber como funciona exatamente. Se alguém puder me explicar melhor agradeço..

#include <stdio.h>
#include <locale.h>

void potencia(int* resultado, int a, int b) {
    *resultado = 1;
    for(int i = 0; i < b; i++) {
        *resultado = *resultado * a;
    }
    printf("O resultado da potência é: %d\n", *resultado);
}

int main(){
    setlocale(LC_ALL, "");
    int resultado;
    int a = 10;
    int b = 5;
    
    potencia(&resultado, a, b);
    printf("Resultado main = %d\n", resultado);
    
}

O resultado deu 100000, é isso mesmo? Achei um valor tão alto. Desculpe minha "noobice", e agradeço pela atenção.

1 resposta

Oii Patrick! Tudo bem?

Não é noobice não, imaginaa!

Vamos trabalhar com números menores. Por exemplo, 2 elevado a 4. Esse cálculo, na matemática é feito como 2*2*2*2 = 16, ou seja, o 2 multiplicado por si mesmo 3 vezes. Repare que, em geral, para fazer a conta (sem calculadora, hehe), fazemos o primeiro 2*2=4, para continuar. Então o próximo passo é fazer 4*2*2. Daí fazemos primeiro 4*2=8, e depois seguimos: 8*2=16. Então fazemos uma operação por vez, certo?

É basicamente isso que o código faz. Dado a quantidade de vezes que precisamos multiplicar o número por si mesmo, vamos fazendo uma operação de cada vez, mas começando com o 1 para armazenar a variável. No caso de 2 elevado a 4, resultado começa com 1, e vai sendo multiplicado por 2, 4 vezes.

Com relação ao 10 elevado a 5, o cálculo está correto sim! Quando falamos de potências de 10, se 10 está elevado a um número, basta escrever o 1 e depois escrever a quantidade de zeros a que o 10 está elevado. No caso de 10 elevado a 5, escrevemos o 1 seguido de 5 zeros, obtendo 100000.

Espero que tenha ficado mais claro! Qualquer coisa estou por aqui!

Abraços e bons estudos!