Potenciação em PHP: Calculando um número elevado a outro com laços

Neste tutorial, vamos te ensinar como fazer a potenciação (calcular a potência de um número elevado a outro), em PHP, primeiramente sem usar nenhuma função interna do PHP.


Calcular potência de um número

Você deve lembrar das aulas básicas de Matemática, quando aprendemos a potenciação.
Ela é definida por três números:
  • base
  • expoente
  • potência (resultado)


Exemplo:

Potenciação em PHP

Por exemplo:
5⁴ = 5 x 5 x 5 x 5
(leia: 5 vezes o 4, por isso repetimos o 4 cinco vezes)

a^b = a x a x a ... x a (o a se repete b vezes).

Calcular potência usando laços

Vamos calcular a potência de um número inteiro elevado a outro inteiro, usando apenas laços.

Para isso, note que uma potenciação nada mais é que multiplicar um número por ele, várias vezes.
Por exemplo, em a^b

Multiplicamos a por a por a por a...um total de b vezes.

O script que pede uma base e um expoente ao usuário e exibe o resultado, usando laços WHILE, DO WHILE e FOR também:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Base: <input type="number" name="base" /><br />
  Expoent: <input type="number" name="expoente" /><br />
  <input type="submit" name="submit" value="Calcular" />
 </form> 
 <?php 
  $base=$_GET['base'];
  $exp=$_GET['expoente'];
  
  // WHILE
  $resultado = 1;
  $count=1;
  
  while($count<=$exp){
   $resultado *= $base;
   $count++;
  }
  echo "Resultado com WHILE: $resultado<br />";
  
  // DO WHILE
  $resultado = 1;
  $count=1;
  
  do{
   $resultado *= $base;
   $count++;
  }while($count<=$exp);
  
  echo "Resultado com DO WHILE: $resultado<br />";
  
  // FOR
  for($resultado=1, $count=1 ; $count<=$exp ; $count++)
   $resultado *= $base;
  
  echo "Resultado com FOR: $resultado<br />";
 ?>
 </body>
</html>

Potenciação no PHP

Calcular um inteiro elevado a outro inteiro, já vimos como fazer.
Mas e se for quebrado?
1,2^2,1 ?

Para isso existe a função nativa pow():
$resultado = pow($base, $expoente)

Veja mais detalhes e exemplos em:
http://php.net/manual/pt_BR/function.pow.php