diff options
Diffstat (limited to 'ee1301/wk3/lab3/RootBabylonOG.cpp')
-rw-r--r-- | ee1301/wk3/lab3/RootBabylonOG.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ee1301/wk3/lab3/RootBabylonOG.cpp b/ee1301/wk3/lab3/RootBabylonOG.cpp new file mode 100644 index 0000000..07c1951 --- /dev/null +++ b/ee1301/wk3/lab3/RootBabylonOG.cpp @@ -0,0 +1,32 @@ +#include <iostream> +#include <cmath> +using namespace std; + +double gennewGuess(double n, double old_guess) { + double real, old; + real=sqrt(n); + double new_guess = ( old_guess + n / old_guess ) / 2; + old=new_guess; + if (((new_guess-real)/real)>0.01) { //This will be true if the difference between the real root and guess is more than 1%. + cout << old << endl; + return gennewGuess(n, old); + } else { + cout << old << endl; + return new_guess; + } +} +int main () { + double temp, temp2; + cout << "Enter the Number to find square root: "; + cin >> temp; + if (temp<=0) { + cout << "Please enter a valid input(Positive Integer)." << endl; + return sqrt(-1); + } + cout << "Guessing..." << endl; + double real=sqrt(temp); + temp2=temp; + temp = gennewGuess(temp, 1.0); + cout << "The Final Guess: " << temp << endl + << "Actual Value: " << real << endl; +} |