Pergunta de entrevista da empresa Meta

Write a function that calculates the root of a given number.

Respostas da entrevista

Sigiloso

27 de fev. de 2013

binary lookup

1

Sigiloso

29 de nov. de 2013

http://stevekrenzel.com/articles/newtons-law

1

Sigiloso

3 de dez. de 2014

public double SquareRoot(double number) { double precision = 10e-8; double low = 0.0; double high = 0.0; double prev = 0.0; double mid = number / 2.0; while(Math.Abs(mid - prev) > precision ) { if(Math.Pow(mid,2) > number) { high = mid; }else { low = mid; } prev = mid; mid = (low+high)/ 2.0; } return mid; }

Sigiloso

4 de jun. de 2015

A better implementation - works for 1 and 4 .. //calculate the square root of a number #include #include #include //atof using namespace std; const double precision = 10e-8; double squareRoot(double number) { double lo = 0.0; double hi = 0.0; double prev = 0.0; double mid = number/2.0; if (pow(number, 2) == number) { return number; } while(abs(mid - prev) > precision) { //cout number) { hi = mid; } else { lo = mid; } prev = mid; mid = (lo + hi) /2.0; } return mid; } int main (int argc, char *argv[]) { double inputNum; for (int i = 1; i < argc; i++) { inputNum = atof (argv[i]); cout << "square root of " << argv[i] << " is ... " << squareRoot(inputNum) << endl; } return 0; }