aboutsummaryrefslogtreecommitdiffstats
path: root/ee1301/wk3/lab3/RootBabylonOG.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ee1301/wk3/lab3/RootBabylonOG.cpp')
-rw-r--r--ee1301/wk3/lab3/RootBabylonOG.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/ee1301/wk3/lab3/RootBabylonOG.cpp b/ee1301/wk3/lab3/RootBabylonOG.cpp
new file mode 100644
index 0000000..530a1bf
--- /dev/null
+++ b/ee1301/wk3/lab3/RootBabylonOG.cpp
@@ -0,0 +1,34 @@
+#include <iostream>
+#include <cmath>
+using namespace std;
+
+double gennewGuess(double n, double old_guess) {
+ double new_guess = ( old_guess + ( n / old_guess ) ) / 2;
+ return new_guess;
+ }
+
+double BabylonRoot(double n) {
+ double real, guess=1; //Initial guess is set to 1
+ real=sqrt(n);
+ do {
+ guess = gennewGuess(n,guess);
+ cout << guess << endl;
+ } while (abs(guess-real)/real>0.01); //Keep guessing unitl within 1% of the actual square root
+ return guess;
+}
+
+int main () {
+ double n, guess;
+ cout << "Enter the Number to find square root: ";
+ cin >> n;
+ if (n<=0) {
+ cout << "Please enter a valid input(Positive Integer)." << endl;
+ return 2;
+ }
+ cout << "Guessing..." << endl;
+ double real=sqrt(n);
+ guess = BabylonRoot(n);
+ cout << "The Final Guess: " << guess << endl
+ << "Actual Value: " << real << endl;
+ return 0;
+} \ No newline at end of file