Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pseudo code for sqrt function

Tags:

c++

c++11

I managed to get my sqrt function to run perfectly, but I'm second guessing if I wrote this code correctly based on the pseudo code I was given.

Here is the pseudo code:

x = 1
repeat 10 times:  x = (x + n / x) / 2
return x.

The code I wrote,

#include <iostream> 
#include <math.h> 
using namespace std; 

double my_sqrt_1(double n) 
{
double x= 1; x<10; ++x;
return (x+n/x)/2; 
} 
like image 439
user2785675 Avatar asked Jul 04 '26 21:07

user2785675


1 Answers

No, your code is not following your pseudo-code. For example, you're not repeating anything in your code. You need to add a loop to do that:

#include <iostream> 
#include <math.h> 
using namespace std; 

double my_sqrt_1(double n) 
{
  double x = 1;
  for(int i = 0; i < 10; ++i) // repeat 10 times
    x = (x+n/x)/2;
  return x; 
} 

Let's analyze your code:

double x = 1;
// Ok, x set to 1


x < 10; 
// This is true, as 1 is less than 10, but it is not used anywhere

++x;
// Increment x - now x == 2

return (x + n / x) / 2 
// return value is always (2 + n / 2) / 2

As you don't have any loop, function will always exit in the first "iteration" with the return value (2 + n / 2) / 2.

like image 50
Nemanja Boric Avatar answered Jul 07 '26 11:07

Nemanja Boric



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!