Hoje vamos escrever uma função chamada numberToPower
que aceitará dois inteiros, number
e power
, como entradas.
Como o nome da função sugere, o nosso objectivo é calcular e devolver um número elevado a n-ésima potência. A nth ou o expoente sendo power
. Mas há um senão, resolveremos isto sem a ajuda de quaisquer funções matemáticas incorporadas. Podemos usar tanto o loop como o for-loop para resolver isto. Vejamos primeiro o for-loop.
A Solução For-Loop
Quando pegamos num número e o elevamos à n-ésima potência, multiplicamos o número por si n vezes.
Como multiplicamos um número por si só? Deixando o total
variável igual a 1
, esta variável irá ajudar-nos a multiplicar number
por si só. Multiplicamos number * 1
um certo número de vezes (potência) e multiplicamos o resultado para total
cada vez.
function numberToPower(number, power){
let total = 1;
for (let i = 1; i <= power; i++) {
total = total * number;
}
return total;
}
Até ao fim do laço, devolvemos o total.
The While Loop Solution
The while-loop solution faz a mesma coisa com a excepção de que terminamos o laço quando decrescemos power
até 0 após cada laço.
function numberToPower(number, power){
let total = 1;
while(power > 0){
total *= number;
power--;
}
return total;
}
Embora seja provavelmente melhor usar as funções matemáticas incorporadas para devolver a potência de um número, especialmente se o expoente for uma fracção, o objectivo da função é não depender de funções incorporadas. Poderá encontrar-se a aprender outra linguagem de programação que poderá não ter todas as funções incorporadas que o JavaScript tem. Terá de contornar o problema, resolvendo-o manualmente.