【杭电】[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]改革春风吹满地
相关文章推荐
- 高精度加法——杭电1002
- Hdu2066(一个人的旅行)
- 杭电1870 愚人节的礼物
- 关于杭电1405 The Last Practice 的问题
- hdu-1103 模拟题。
- hdu-1022 栈的应用。
- hdu-1247 简单map的应用。(字典树)
- hdu-1251 字典树公共前缀。
- hdu-1075 map映射表的应用。
- 杭电ACM Steps (1)
- hdu 1005 -- Number Sequence
- hdu 1007 -- Quoit Design
- 杭电1004
- 杭电1005
- 杭电1008
- c++编写藏手帕问题
- 杭电oj-1003
- 杭电oj-1004
- 杭电oj-1005
- 并查集示例1