您的位置:首页 > 其它

【杭电】[2036]改革春风吹满地

2016-04-04 07:09 239 查看




求任意多边形的面积

当时还没学叉积什么的

一个小技巧是通过 i+1%n

来让最后一个点与第一个点相连

#include<stdio.h>
struct node {
int x,y;
} a[120];
double f(int x1,int y1,int x2,int y2) {
return double(x1*y2-x2*y1);
}
int main() {
int n;
while(scanf("%d",&n),n) {
for(int i=0; i<n; i++) {
scanf("%d %d",&a[i].x,&a[i].y);
}
double res=0;
for(int i=0; i<n; i++) {
res+=f(a[i].x,a[i].y,a[(i+1)%n].x,a[(i+1)%n].y);
}
printf("%.1lf\n",res/2.0);
}
return 0;
}


参考文章:

任意多边形面积计算 - 专业思考与实践者

任意多边形的面积公式 - 菜头

任意多边形面积的求解 - songgaoyong - ChinaUnix博客

题目地址:【杭电】[2036]改革春风吹满地
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杭电 多边形面积