zoukankan      html  css  js  c++  java
  • 天花乱坠 (数学)

    链接:https://ac.nowcoder.com/acm/contest/992/F
    来源:牛客网

    题目描述

    某年某月某日,琪仔get到了一款十分精美的天花板图案的设计图纸。
    图案的框架最初是一个正n边形,之后以它的n条边的中点为顶点构成一个新的正n变形。如此重复多次后,就能得到天花板图案的框架了。
    不要问重复多少次,问就是无限重复。。。
    给定n,求生成的图案的框架所有边的长度总和(最初正n边形每条边的边长均为100)。

    输入描述:

    多组测试(不多于100组),每组一行一个整数n( 2 < n <= 100),表示正多边形的边数。

    输出描述:

    对于每组测试,输出一行一个结果,四舍五入保留两位小数。(请用较为简洁的计算方式,以减少误差)
    示例1

    输入

    复制
    3
    4
    50

    输出

    复制
    600.00
    1365.69
    2533863.09

    析:这就是一个很简单的数学推导,很容易知道正 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
    ", ans);
        }
        return 0;
    }
    

      

  • 相关阅读:
    uboot——官网下载直接移植(二)
    uboot——官网下载直接移植(一)
    uboot移植——使用三星移植好的uboot开始移植
    ubuntu 网络设置
    s5pv210 uboot——移植DM9000网卡驱动
    UBOOT——MMC驱动分析
    UBOOT——启动内核
    (转)C语言——字符常量
    UBOOT——第二阶段start_armboot函数详解(二)
    RandomForest in Spark MLLib
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/11223605.html
Copyright © 2011-2022 走看看