Pisząc programy w języku C++ niejednokrotnie potrzebowałem obliczyć pierwiastek kwadratowy. Z pomocą przychodziła tutaj gotowa funkcja z biblioteki <cmath>. Intuicja może podpowiadać, że przekazując funkcji sqrt więcej niż jeden argument, możemy obliczyć pierwiastek dowolnego stopnia.
Niestety tak nie jest !!!
Funkcja sqrt() pozwala obliczyć tylko i wyłącznie pierwiastek kwadratowy. Nazwa funkcji nie jest przypadkowa, sqrt to skrót od square root (pierwiastek kwadratowy).
Wróćmy jednak do problemu obliczania pierwiastka dowolnego stopnia.
Spójrzmy na problem od troszkę innej strony - matematycznej strony.
Zastanówmy się czym właściwie jest pierwiastek n-tego stopnia ?
Odpowiedzią na to pytanie jest poniższy wzór.
Zgodnie z tym wzorem pierwiastek n - tego stopnia z liczby a to nic innego jak ta liczba podniesiona do potęgi. Wykładnik potęgi to ułamek z licznikiem o wartości równej jedynce oraz mianownikiem o wartości równej liczbie n.
Poniższy kod rozwiązuje cały problem przy pomocy funkcji pow() (potęgowanie) z biblioteki <cmath>.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <cmath> | |
using namespace std; | |
double nth_root(double a,double n) | |
{ | |
return pow(a,1/double(n)); | |
} | |
int main() { | |
double a,n; | |
cin>>a>>n; | |
cout<<nth_root(a,n); | |
return 0; | |
} |
Brak komentarzy:
Prześlij komentarz