题目详情
求解 A^B = B^A, (A!=B) ^表示乘方
输入格式
多组数据,每组数据一行,有一个不小于1.1的浮点数,表示A和B中比较小的,求另外一个数。
输出格式
每组数据一行,如果有解输出解,保留5位小数,否则输出-1。
#include <iostream>
#include <cmath>
const double e = 2.718281;
int main() {
double a, b;
while(scanf("%lf", &a) == 1) {
if(a > 2.718281)
printf("-1\n");
else {
double l = e, s = 100;
while(s - l >= 0.000001) {
double mid = (l+s)/2;
if(mid/log(mid) > a/log(a)) {
s = mid;
} else {
l = mid;
}
}
printf("%.5lf\n", l);
}
}
return 0;
}