F - Calm Down (LightOJ - 1072)

- 题目大意

      给一个半径为R的大圆,里面有n个小圆,把这些小圆放置成和大圆均内切且相邻两个小圆相切的形式,问每个小圆的半径是多少。

- 解题思路

    纯粹的几何题,找出小圆个数与半径的几何关系即可,即r/(R-r)=sin(360°/n/2)(注意保留的小数位数)。

- 代码

#include <iostream>  
#include <algorithm>  
#include <cmath>  
#include<iomanip>
using namespace std;
#define PI 3.14159265358979323846

int main()
{
	double R, r, n;
	int t;
	double ds;
	cin >> t;
	for (int i = 1; i <= t; i++)
	{
		cin >> R >> n;
		n = n * 2;
		ds = PI * 2 / n;
		r = R * sin(ds) / (1 + sin(ds));
		cout << "Case " << i << ": " << setprecision(10) << std::fixed << r<<endl;
	}
	return 0;
}

  

posted @ 2018-02-08 14:44  Alpacaddhh  阅读(145)  评论(0编辑  收藏  举报