标签:
这题只是考你最后有没有(r-l)/2而已……
用二分法求下面方程在(-10, 10)之间的一个根。
2x3- 4x2+ 3x- 6 = 0
0
2.00000000
1 #include <stdio.h> 2 #include <math.h> 3 double f(double x) 4 { 5 x=2*pow(x,3)-4*pow(x,2)+3*x-6; 6 return x; 7 } 8 int main() 9 { 10 double e; 11 double mid,l=-10,r=10,fl,fr,fm; 12 scanf("%lf",&e); 13 fl=f(l); 14 fr=f(r); 15 while(!(r-l<=e)) 16 { 17 mid=(l+r)/2; 18 fm=f(mid); 19 if(fm*fl<0) 20 { 21 r=mid; 22 fr=fm; 23 } 24 else 25 { 26 l=mid; 27 fl=fm; 28 } 29 if(r-l<0.000000001) break; 30 } 31 mid=(r+l)/2; 32 // if(e>=1) printf("No Solution"); 经测试这项不需要写 33 printf("%.8lf",mid); 34 return 0; 35 }
Openjudge ch0111/t6253 用二分法求方程的根
标签:
原文地址:http://www.cnblogs.com/KakagouLT/p/4995314.html