栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

某IT外企面试题:二分法求方程!看看大家的C++功底

某IT外企面试题:二分法求方程!看看大家的C++功底

//f(x)=RMAX-R+(R-r)*double   (cos(0.5*x))+double   (sqrt(r*r-(R-r)*(R-r)*   sin(0.500*x)*   sin(0.500*x)))  
  请用二分法或其他方法求出解x.要求精度esp=1e-5  
  其中RMAX,R,r从键盘输入。  

  

#include     
  #include     
  void   get(double   RMAX,double   R,double   r,double   x,double   y)  
  {  
    
  double   m,n,c,p;  
  double   esp=1e-5;  
    
  do  
  {  
  m=RMAX-R+(R-r)*double   (cos(0.5*x))+double   (sqrt(r*r-(R-r)*(R-r)*   sin(0.500*x)*   sin(0.500*x)));  
                  n=RMAX-R+(R-r)*double   (cos(0.500*y))+double   (sqrt(r*r-(R-r)*(R-r)*   sin(0.500*y)*sin(0.500*y)));  
  c=0.500*(x+y);  
                  p=RMAX-R+(R-r)*double   (cos(0.500*c))+double   (sqrt(r*r-(R-r)*(R-r)*   sin(0.500*c)*sin(0.500*c)));  
  if(fabs(p)
  break;  
    
    
    else   if(m*p<0)  
  {  
  x=x;  
  y=c;  
    
  }  
  else   if   (m*p>0)  
  {  
  y=y;  
  x=c;  
    
  }  
    
  }while(fabs(y-x)
    
  cout<<“The   value   of   angle:tt”<<(x+y)*0.5<
  cout<<<”   “<<<”   “<<
    
  }  
    
  void   main()  
  {  
  double   RMAX,R,r,x,y;  
  cout<<“input   RMAX,R,r,x,y:”<
    
          cin>>RMAX;  
  cin>>R;  
  cin>>r;  
  cin>>x;  
  cin>>y;  
    
  get(RMAX,R,r,x,y);  
  }  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号