题目的那点在于如何求解角度,这里采用的方法是二分求解:
一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。
解方程即要求f(x)的所有零点。
先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],
现在假设f(a)<0,f(b)>0,a<b
①如果f[(a+b)/2]=0,该点就是零点,
如果f[(a+b)/2]<0,则在区间((a+b)/2,b)内有零点,(a+b)/2=>a,从①开始继续使用
中点函数值判断。
如果f[(a+b)/2]>0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=>b,从①开始继续使用
中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。
(以上摘自百度)
因此,可以用二分迭代的方式求解该题的角度。
当两点之间的距离小于一个阈值时,停止迭代计算,输出结果即可。
代码如下:
这里还要说的一点就是不能走意识流的路线,看着题目中的n和L是整数就以为它们真的是整数?F**K,那是POJ逗你玩。。。白WA了两次。。。
本文介绍了一种使用二分法求解特定数学问题中角度的方法。通过迭代逼近目标值,实现对角度的精确计算。文章提供了详细的算法流程及C++实现代码。

441

被折叠的 条评论
为什么被折叠?



