- 题目大意
给一个半径为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;
}