aula 159

Como implementar a função potência recursiva que retorne o valor de x elevado n?

Nesta aula aprenderemos como implementar a função potência recursiva que retorna o valor de x elevado n, dando continuidade ao estudo de programação recursiva com a linguagem C. Os dois valores, x e n serão lidos a partir do teclado.

Para resolver este exercício se faz necessário entender que a potência pode ser calculada facilmente por meio de multiplicações. Veja alguns exemplos:
25 = 2 * 2 * 2 * 2 * 2 = 32
33 = 3 * 3 * 3 = 27

Entendido isso, precisamos identificar nosso ponto de parada. Nesta caso, um ponto de parada interessante que inclusive pode ser digitado pelo usuário como teste, é o n = 0. Qualquer valor elevado a zero é igual a 1 (n0 = 1).

Com estas informações podemos construir nossa função recursiva para a função potência. Se n for igual a zero, então é retornado 1, senão, é calculado a multiplicação de x n vezes.

#include <stdio.h>
#include <stdlib.h>

int potencia(int x, int n){
    if(n == 0)
        return 1;
    else
        return x * potencia(x, n - 1);
}

int main () {

    int n, x;

    printf("Digite o valor para X e para N: ");
    scanf("%d%d", &x, &n);

    printf("Resultado de %d elevado a %d: %d\n", x, n, potencia(x, n));

    return 0;
}

Este post tem um comentário

  1. Filipe

    //esta solução aceita potência negativa.
    #include

    int potencia(int x, int n){
    if(n==0)
    return 1;
    else{
    return (x * potencia(x,–n));
    }
    }

    int main(){
    int n , x;
    printf(“em x elevado a n\n”);
    printf(“x =”);
    scanf(“%d”,&x);
    printf(“n =”);
    scanf(“%d”,&n);
    if(n>=0)
    printf(“%d\n”,potencia(x, n));
    else
    printf(“%f\n”, 1/(float)potencia(x, -n));

    return 0;
    }

Deixe um comentário

dezoito + 17 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.