Как вычислить корень любой заданной степени из числа, не используя функцию Math::pow?
Как можно вычислить корень любой заданной степени из числа, не используя функцию Math::pow?
void res() {
int root = 2, numb = 16;
num res = pow(numb, 1 / root);
print(res); //Output: 4.0
}
Возможно есть решения на других ЯП, тоже ознакомлюсь с ответами.
Ответы (2 шт):
Автор решения: bahmN
→ Ссылка
Ответ заложен в данной статье Алгоритм вычисления корня n-ой степени из произвольного положительного числа
double mabs(double x) {
return (x < 0) ? -x : x;
}
class RootNumber {
void res() {
double num = 521;
int rootDegree = 11;
double eps = 0.0001;
double root = num / rootDegree;
double rn = num;
while (mabs(root - rn) >= eps) {
rn = num;
for (int i = 1; i < rootDegree; i++) {
rn = rn / root;
}
root = 0.5 * (rn + root);
}
print('Result = ${root.toStringAsFixed(3)}');
}
}