diff options
author | Matt Strapp <matt@mattstrapp.net> | 2022-05-24 11:18:46 -0500 |
---|---|---|
committer | Matt Strapp <matt@mattstrapp.net> | 2022-05-24 11:19:55 -0500 |
commit | 7a73162607544204032aa66cce755daf21edebda (patch) | |
tree | 58578e01f15f34a855d99c32898db9d7a1603e67 /ee1301/wk3/lab3/RootBabylon2.cpp | |
parent | do some stuff (diff) | |
download | homework-7a73162607544204032aa66cce755daf21edebda.tar homework-7a73162607544204032aa66cce755daf21edebda.tar.gz homework-7a73162607544204032aa66cce755daf21edebda.tar.bz2 homework-7a73162607544204032aa66cce755daf21edebda.tar.lz homework-7a73162607544204032aa66cce755daf21edebda.tar.xz homework-7a73162607544204032aa66cce755daf21edebda.tar.zst homework-7a73162607544204032aa66cce755daf21edebda.zip |
Graduate
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'ee1301/wk3/lab3/RootBabylon2.cpp')
-rw-r--r-- | ee1301/wk3/lab3/RootBabylon2.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ee1301/wk3/lab3/RootBabylon2.cpp b/ee1301/wk3/lab3/RootBabylon2.cpp new file mode 100644 index 0000000..1053cab --- /dev/null +++ b/ee1301/wk3/lab3/RootBabylon2.cpp @@ -0,0 +1,40 @@ +#include <iostream>
+#include <iomanip>
+#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;
+ char cont;
+ do {
+ cout << "enter a value: ";
+ cin >> temp;
+ int n=temp;
+ if (temp<=0) {
+ cout << "Please enter a valid input(Positive Integer)." << endl;
+ return sqrt(-1);
+ }
+ //cout << "Guessing..." << endl;
+ temp = gennewGuess(temp, 1.0);
+ cout << fixed << setprecision(0) << "square root of " << n << " is " << temp << endl
+ << "continue? (y/n): ";
+ cin >> cont;
+ if (cont!='n'&&cont!='y') {
+ return -1;
+ }
+} while (cont!='n');
+ // << "Actual Value: " << real << endl;
+}
|