首页 > 其他 > 详细

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

时间:2014-02-27 18:30:26      阅读:499      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 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 }
bubuko.com,布布扣

UVA11300计算几何:正n边形内的最长的线,布布扣,bubuko.com

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

原文:http://www.cnblogs.com/little-w/p/3570196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!