64,685
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <cmath>
bool goodEnough(double guess, double x) {
if (std::abs(x - guess*guess) < 0.001) {
return true;
}
else {
return false;
}
}
double improve(double guess, double x) {
return ((x / guess) + guess) / 2;
}
double SqrtIter(double guess,double x) {
if (goodEnough(guess, x)) {
return guess;
}
else {
SqrtIter(improve(guess, x), x);
}
}
double NewtonSqrt(double x) {
return SqrtIter(1.0, x);
}
int main() {
double k = NewtonSqrt(2.0);
std::cout << k;
getchar();
}