【二分法】计蒜客:对数方程_ios

零点存在定理:

f(x)单调递增, f(x)在区间[left,right]有根,若f(mid)>=0,则f(x)在[left,mid]有根

#include<iostream>
#include<math.h>
using namespace std;
double a;
const double dis=1e-4;
bool value(double x){
	 return x+log(x)-a>=0; 
}
int main(){
	cin>>a;
	double left=0;
	double right=1e9;
	while(right-left>dis){
		double mid=(right+left)/2;
		if(value(mid)){
			right=mid;
		}
		else{
			left=mid;
		}
	}
	cout<<right; 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.