//http://acm.hdu.edu.cn/showproblem.php?pid=2675 //Equation Again /* 题目等价于 x^y = y^x ln(x)/x = ln(y)/y 所以 x和y是f(z) = ln(z)/z函数取某个值时的不同的z的两个自变量 再打一下表 汇出f(z)的图像 显然x=y(y>=e)是它的一个解,由图像还有一个是在1和e之间 所以用二分法查找 得解 */ #include<stdio.h> #include<math.h> double f(double x) { return log(x)/x; } const double e=2.718281828459045; int main() { double y; while(scanf("%lf",&y)!=EOF) { double w=f(e*y); double head=1,rear=e; double x=(head+rear)/2; while(fabs(rear-head)>=1e-7) { if(f(x)<w) head=x; if(f(x)>w) rear=x; x=(head+rear)/2; //printf("%lf %lf/t",head,rear); } if(y==1) printf("%.5lf/n",e*y); else printf("%.5lf %.5lf/n",x,y*e); //printf("%lf/n",w); } return 0; }