题解:二分法
注意:double判断大小应该用差值小于某个数来进行判断
#include <stdio.h> #include <iostream> #include <cmath> using namespace std; double test(double k){ return pow(k,5)-15*pow(k,4)+85*pow(k,3)-225*pow(k,2)+274*k-121; } int main(){ double l=1.500000,r=2.400000; double mid=0.0; while(abs(l-r)>0.000001){ mid=(l+r)/2; if(test(mid)>0){ l=mid; }else if(test(mid)<0){ r=mid; } } printf("%.6f\n",mid); }