容易发现左边的那个函数一定单调递增。
当x=1时候,函数质一定是1,
如果x小于1,函数值一定是负数,而右边的c是大于等于1的,所以其实是一定有解的
那么二分就好了。
考虑到精度问题。所以可以考虑限定次数来二分答案。。
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,b,c;
cin>>a>>b>>c;
double l=1.0,r=1e9,mid;
int time=1000;
while(time--)
{
double ans=1;
mid=(l+r)/2;
for(int i=1; i<=a; i++)
{
ans=ans*mid;
}
ans+=b*log(mid);
if(ans>c)
r=mid;
else
l=mid;
}
printf("%.14f\n",mid);
return 0;
}

京公网安备 11010502036488号