Как считать квадратный корень в C++ без sqrt? Как считать квадратный корень в C++ без sqrt?
По дате
По рейтингу
Написать свою программу под алгоритмы нахождения корня вручную
pow(x, 1./2);
Как насчёт академического варианта? Ряд Тейлора!
Есть итерационные алгоритмы для вычисления квадратного корня в целых числа, используя только умножение и сложение. Например, на С:
unsigned sqrt_cpu_int(long L){
unsigned div = 1, rslt = 0;
while (L > 0){
L -= div, div += 2;
rslt += L < 0? 0 : 1;
}
return rslt;
}
Извлечение квадратного корня это то же самое, что возведение в степень 1/2, то есть можно использовать возведение в степень.
Любое число х можно представить как е в некоторой степени, равной ln(x). Зная свойства степеней тогда получим, что корень из х равен exp(ln(x)*1/2).
Это годится для корней любой степени.