• UVA11300计算几何:正n边形内的最长的线


     1 /*UVA11300
     2 平面几何:
     3 正n边形内的最长的线是哪条?
     4 归纳推理:
     5 举例n=3,4,5,6;n为偶数,因为正对的两个点在分割的圆上,所以最长
     6                n为奇数,做顶点到对边的垂线,定点到相对点的连线,因为构成直角三角形,所以斜边大于直角边,得证对顶点连线最长
     7 假设最长边长为2*x,则
     8 S(n,x)=n*0.5*x*x*sin(2Pi/n);偶数
     9 S(n,x) =n*0.5*r*r*sin(2pi/n);奇数
    10 r=x/(sin((int)n/2/n*2*pi))
    11 ps:想到最长边这个思路很关键
    12 */
    13 #include<iostream>
    14 #include<stdio.h>
    15 #include<string.h>
    16 #include<algorithm>
    17 #include<stdlib.h>
    18 #include<cmath>
    19 #include<queue>
    20 #include<vector>
    21 #include<map>
    22 #define LL long long
    23 
    24 using namespace std;
    25 
    26 int x,y,x2,y2,n;
    27 
    28 void solve(double x)
    29 {
    30     if (n%2==0)
    31     cout<<n*0.5*x*x*sin(2*M_PI/n)<<endl;
    32     else
    33     {
    34         double r=x/(sin((n/2+0.0)/n*2*M_PI/2));
    35         cout<<n*0.5*r*r*sin(2*M_PI/n)<<endl;
    36     }
    37 }
    38 int main()
    39 {
    40     while(cin>>x>>y>>x2>>y2>>n)
    41     {
    42         if(n==0) break;
    43         double r=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))/2;
    44         solve(r);
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    调试
    node笔记汇总
    移动端布局
    css 易错点总结
    Angular笔记
    CANVAS笔记
    http笔记汇总
    各种环境搭建 软件安装等等 参考网址收录
    js中同步异步,任务队列
    node.js之fs模块
  • 原文地址:https://www.cnblogs.com/little-w/p/3570196.html
Copyright © 2020-2023  润新知