8.二分查找拓展-求任意次根号下
例如求根号2=? 等价于 x²=2
故用二分法x无限逼近令其=2
#include <bits/stdc++.h>
using namespace std;
/*
例如求根号2=? 等价于 x2=2
故用二分法无限逼近令其=2
*/
const double eps=1e-5; //这里是精确到多少位
double genhao(double x,double zuo,double you) //如果x=2 就是求根号2 zuo you分别是x左右两边近似数
{
double mid;
while(you-zuo>eps)
{
mid=(zuo+you)*1.0/2;
if(mid*mid>2) you=mid; //这里mid*mid代表平方,如果求三次根号下则mid*mid*mid 以此类推
else zuo=mid;
}
return mid;
}
int main()
{
cout<<genhao(2,1,2);
return 0;
}
测试样例是求根号2