链接:https://ac.nowcoder.com/acm/contest/992/F
来源:牛客网
题目描述
  某年某月某日,琪仔get到了一款十分精美的天花板图案的设计图纸。 
  图案的框架最初是一个正n边形,之后以它的n条边的中点为顶点构成一个新的正n变形。如此重复多次后,就能得到天花板图案的框架了。 
  不要问重复多少次,问就是无限重复。。。 
  给定n,求生成的图案的框架所有边的长度总和(最初正n边形每条边的边长均为100)。 
输入描述:
多组测试(不多于100组),每组一行一个整数n( 2 < n <= 100),表示正多边形的边数。
输出描述:
对于每组测试,输出一行一个结果,四舍五入保留两位小数。(请用较为简洁的计算方式,以减少误差)
析:这就是一个很简单的数学推导,很容易知道正 n 边形的每个内角的度数 PI * (n - 2) / n,有了这个,就可以通过余弦定理来求出重复在它内部的第一个正 n 边形的边长 
 
其中 α 就是该正 n 边形的内角,x 是边长,然后可以看出,每个边长组成一个等比数列,公比就是上面那个式子除了 x,然后就可以使用等比数列求和得到最后和式, (中间使用了一次极限)
(中间使用了一次极限)
最后只要把边长和边数乘进去就行了,最后结果就是 
代码如下:
#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
int n;
int main(){
    while(scanf("%d", &n) == 1){
        double a = cos(PI * (n - 2) / n);
        double ans = 100.0 * n * (2 + sqrt(2-2*a)) / (1 + a);
        printf("%.2f\n", ans);
    }
    return 0;
}
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号