解题思路:按题目要求来,用二分法搜索可认为相等的近似值
注意事项:
参考代码:
#include <iostream> #include <cmath> #include <iomanip> using namespace std; #define PI 3.1415926 int main() { double x,left,right,mid; cin>>x; left=0;right=PI; while(true) { if(fabs(cos(mid)-x)<0.00000000001)//两个差值足够小,可认为相等 { cout<<setiosflags(ios::fixed)<<setprecision(5)<<mid<<endl; break; } else if(x<cos(mid))//太大 left=mid; else if(x>cos(mid))//太小 right=mid; mid=(left+right)/2;//二分法搜索 (对二进制数进行操作,会更快mid=(left+right)>>1;(右移1个) } return 0; }
0.0分
0 人评分