#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n=5;
double ans=sqrt(n);
// cout<<ans;
double low=0,high=n;
double mid;
int cnt=0;
while(low<high){
cnt++;
mid=(low+high)/2;
double cha=abs(mid*mid-n);
if(cha<=0.001) break;
else if(mid*mid>n) high=mid;
else if(mid*mid<n) low=mid;
}
cout<<mid<<"迭代了"<<cnt<<"次"<<endl;
cout<<"真值为"<<ans;
return 0;
}
//暴力查找,对比上面折半查找的例子
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int cnt=0;
for(double i=0;i<5;i=i+0.001){
cnt++;
if(abs(i*i-5)<0.01) {
cout<<i<<' '<<cnt;
break;}
}
return 0;
}