Voltar para os desafios
Médio 0 resolvidos 0% de aceitação

Elevar um Número a uma Potência Fracionária

Eleve um número real positivo a um expoente racional.

O que você vai aprender

  • Transformar um expoente racional em raiz e potência
  • Usar cálculos de ponto flutuante com segurança
  • Tratar expoentes simplificados e negativos

Problema

Ver original (inglês)

O expoente é numerator / denominator. Eleve base_value a esse expoente e retorne o resultado real. Por exemplo, um expoente de 1/3 retorna a raiz cúbica positiva.

Implemente real_to_rational_power(base_value, numerator, denominator).

Entrada

base_value: A base positiva.

numerator: O numerador do expoente.

denominator: O denominador do expoente.

Saída

Retorne base_value elevado a numerator / denominator.

Restrições

0,1 ≤ base_value ≤ 100, com no máximo duas casas decimais. −6 ≤ numerator ≤ 6; 1 ≤ denominator ≤ 10. As respostas são aceitas com erro absoluto ou relativo de até 0,000001.

Exemplos

Exemplo 1
Entrada:
numerator = 1
base_value = 8.0
denominator = 3

Saída esperada:
expected = 2.0
Entrada:
long long numerator = 1;
double base_value = 8.0;
long long denominator = 3;

Saída esperada:
double expected = 2.0;
Entrada:
long numerator = 1;
double base_value = 8.0;
long denominator = 3;

Saída esperada:
double expected = 2.0;

Explicação

2 × 2 × 2 = 8, então a raiz cúbica é 2.

Exemplo 2
Entrada:
numerator = -1
base_value = 16.0
denominator = 2

Saída esperada:
expected = 0.25
Entrada:
long long numerator = -1;
double base_value = 16.0;
long long denominator = 2;

Saída esperada:
double expected = 0.25;
Entrada:
long numerator = -1;
double base_value = 16.0;
long denominator = 2;

Saída esperada:
double expected = 0.25;

Explicação

A raiz quadrada de 16 é 4, e o expoente negativo toma seu recíproco, 1/4.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Primeiro transforme a fração do expoente em um único expoente real.

Dica 2

Depois eleve a base positiva usando uma operação de potência real.

Dica 3

Garanta que expoentes negativos produzam recíprocos e evite erros com raízes fracionárias.

Complexidade esperada

tempo O(1), espaço extra O(1)

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.