Я выяснил алгоритм поиска квадратного корня без использования функции sqrt, а затем попытался включить в программирование. Я получаю этот рабочий код в С++
#include <iostream>
using namespace std;
double SqrtNumber(double num)
{
double lower_bound=0;
double upper_bound=num;
double temp=0; /* ek edited this line */
int nCount = 50;
while(nCount != 0)
{
temp=(lower_bound+upper_bound)/2;
if(temp*temp==num)
{
return temp;
}
else if(temp*temp > num)
{
upper_bound = temp;
}
else
{
lower_bound = temp;
}
nCount--;
}
return temp;
}
int main()
{
double num;
cout<<"Enter the number\n";
cin>>num;
if(num < 0)
{
cout<<"Error: Negative number!";
return 0;
}
cout<<"Square roots are: +"<<sqrtnum(num) and <<" and -"<<sqrtnum(num);
return 0;
}
Теперь проблема заключается в инициализации числа итераций nCount в объявлении (здесь 50). Например, чтобы найти квадратный корень из 36, требуется 22 итерации, поэтому нет проблем, тогда как поиск квадратного корня из 15625 занимает более 50 итераций, поэтому он вернет значение temp после 50 итераций. Пожалуйста, дайте решение для этого.