主页
c++版牛顿开方递归版
作者: splub
#include <iostream>
#include <iomanip>


using namespace std;
int a=1;


//绝对值函数 
double abs(const double& a, const double& b){
return a > b ? a-b : b-a;
}
//求平均数
double average(const double& a, const double& b){
return (a+b)/2;
} 


void _iter(double guess , double x, double& res){
if(abs(x,guess*guess) < 0.0001){
res= guess;
} 
else{
_iter(average(x/guess, guess), x, res);
}
}
//牛顿法求平方根
double sqroot(double n){
double res;
_iter(1.0, n, res);
return res;
}


int main(){
double x1, y1, x2, y2;
cin >> x1>>y1;
cin >>x2>>y2;
double around = abs(x2, x1);
double ver    = abs(y2, y1);
cout << fixed << setprecision(3)<< sqroot(around*around+ver*ver) << endl;
return 0;
}
发表于:2019年4月29日 下午 6:55:41
更新于:2019年4月29日 下午 6:56:15