Я обнаружил алгоритм определения квадратного корня без использования функции sqrt, а затем попытался ввести его в программирование. Я получаю этот рабочий код на C ++
#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 итераций. Пожалуйста, дайте решение для этого.
input / 10eN
. - person Jerry Coffin   schedule 27.10.2013