Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:90727

签 名:

2023终究会过去,期待2024!

等  级
排  名 8
经  验 26238
参赛次数 58
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:

   cos(a)=b; arccos(b)=a; 那么有arccos(x)=result,cos(result)=x理论上成立

   只要测出cos(result)无限接近于x(已知),那么result就是我们需要的答案.

   用二分法求出无限接近于x的余弦值,最终精确到cos(result)-x<1e-13为止。


1.jpg


参考代码:

#include <bits/stdc++.h>
using namespace std; 
const double PI=3.1415926;
int main() 
{
	double x;
	double L,R,Mid;
	L=0; R=PI;
	Mid=(L+R)/2;
	scanf("%lf",&x);
	while(1)
	{
		if(fabs( cos(Mid)-x )<1e-13) //近似值相等 
		{
			printf("%.5f",Mid);
			break;
		}
		else if( x<cos(Mid) )  //x在右侧 
			L=Mid;
		else if( x>cos(Mid) ) //x在左侧 
			R=Mid;
		Mid=(L+R)/2;
	}	
	return 0;
}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区