Я просто изучал вопросы, которые разные компании задают в интервью.Я нашел одно: «Найти квадратный корень числа с точностью. Определение функции должно быть примерно таким: double getSquareRoot(int num, int precision)
».
Я написал одну маленькую функцию, которая дает квадратный корень, но это не волнуето точности:
double getSquareRoot(int num){
int num1=0, num2=0;
for(int i=1 ;; i++){
if(i*i == num){
std::cout<<i <<" is the sq root"<<std::endl;
break;
}
else if(i*i > num){
num2 = i;
num1 = --i;
break;
}
}
// in the above for loop, i get the num1 and num2 where my input should lie
// between them
// in the 2nd loop below.. now i will do the same process but incrementing
// by 0.005 each time
for(double i =num1;i<(double)num2;i+=0.005)
{
if(i*i>= num){
std::cout<<(double)i <<" is the sq root"<<std::endl;
break;
}
}
}
Теперь, чтобы достичь точности, мне нужно будет сделать несколько настроек, таких как добавление циклов if и все.Мне это не нравитсяНе могли бы вы, ребята, помочь мне здесь?Если вы пишете код, пожалуйста, объясните.Я был бы признателен.
Спасибо.
Этот код очень недостаточен, и он не заботится о "до этой точности" части проблемы.Я написал это только для того, чтобы вы, парни, не думали, что я попробовал немного.Это