题解 CF1100C 【NN and the Optical Illusion】

本题是道纯数学题,代码很简单。

示意图:

如图所示:

线段 \(BD\)\(\bigcirc A \bigcirc C\) 相切,设 \(R\) 为大圆的半径,\(r\) 为小圆的半径,\(n\) 为小圆个数,则 \(\angle \alpha = (360 \div n \div 2)^\circ\) ,转化为弧度制即为:

\[\pi \cdot 2 \div n \div 2=\frac{\pi}{n} \]

由此则可在 \(Rt\vartriangle BDC\) 设出 \(k=\sin \angle \alpha\),即可得出方程:

\[r=(r+R)\cdot k \]

化简:

\[r=r \cdot k+R \cdot k \]

\[r-r \cdot k=R \cdot k \]

\[r(1-k)=R \cdot k \]

\[r=\frac{R \cdot k}{1-k} \]

代码:


#include<bits/stdc++.h>
using namespace std;
int main()
{
	double n,r;
	double pi=3.14159265358979323846;
	cin>>n>>r;
	double k=sinf(pi/n);
	printf("%.7lf",r*k/(1-k));
}

轻松解决~~

posted @ 2021-04-30 09:21  ☄️ezuyz☄️  阅读(55)  评论(0)    收藏  举报