Description
This problem’s author is too lazy to write the problem description, so he only give you a equation like X (eY) == (eY) x, and the value of Y, your task is calculate the value of X.
Note : here e is the Natural logarithm.
Note : here e is the Natural logarithm.
Input
Each line will contain one number Y(Y >= 1). Process to end of file.
Output
For each case, output X on one line, accurate to five decimal places, if there are many answers, output them in increasing order, if there is no answer, just output “Happy to Women’s day!”.
Sample Input
1
Sample Output
2.71828
1 #include <stdio.h> 2 #include <math.h> 3 4 const double INF=0x3f3f3f3f; 5 const double s=1e-9; 6 const double e=exp(1); 7 double y,Y; 8 9 bool C(double x) 10 { 11 if((log(x)/x)<(log(e*y)/(e*y))) 12 return true; 13 else 14 return false; 15 } 16 17 int main() 18 { 19 int i,j; 20 while(scanf("%lf",&y)!=EOF) 21 { 22 double Y=(log(e*y)/(e*y)); 23 if(y==1.0) 24 printf("%.5lf ",e); 25 else if(Y>(log(e)/e)) 26 { 27 printf("Happy to Women’s day! "); 28 } 29 else 30 { 31 double lb=1.0,ub=e; 32 for(i=1;i<=1000;i++) 33 { 34 double mid=(lb+ub)/2; 35 if(C(mid)) 36 lb=mid; 37 else 38 ub=mid; 39 } 40 printf("%.5lf ",ub); 41 lb=e,ub=INF; 42 for(i=1;i<=1000;i++) 43 { 44 double mid=(lb+ub)/2; 45 if(C(mid)) 46 ub=mid; 47 else 48 lb=mid; 49 } 50 printf("%.5lf ",lb); 51 52 } 53 } 54 return 0; 55 }