题目描述
有一个如下的方程需要你帮忙计算一下。
xe^x=a
其中, e 为自然底数,a 为常数。
请你求出满足等式的 x 的值。
输入
输入一个整数a(0≤a≤10^9)。
输出
输出一个浮点数,表示方程的解,四舍五入到小数点后四位。
样例输入1
0
样例输出1
0.0000
样例输入2
1
样例输出2
0.5671
样例输入3
100
样例输出3
3.3856
#include <iostream>
#include<cmath>
#include<cstdio>
using namespace std;
double f(double x) {
return x * exp(x);
}
int main() {
int a;
cin >> a;
double l = 0, r = 30;
for (int i = l; i < r; i++) {
while (r - l > 0.00001) {
double mid = (l + r) / 2;
if (f(mid) > a) {
r = mid;
}
else if (f(mid) < a) {
l = mid;
}
}
}
printf("%.4f", l);
return 0;
}