pku3907 求多边形面积

解法就是用有向面积法,叉积就可以。最后如果是负数的话取个相反数就OK了,代码也很简单,如下。
 1 Show Code - Run ID 1166912
 2 
 3 Submit Time: 2012-02-18 01:33:04     Language: GNU C     Result: Accepted
 4     Pid: 3124     Time: 0.00 sec.     Memory: 852 K.     Code Length: 0.6 K.
 5 # include <stdio.h>
 6 # define cross(x1,y1,x2,y2) (x1)*(y2)-(x2)*(y1)
 7 # define get_aera(x0,y0,x1,y1,x2,y2) (cross((x1)-(x0),(y1)-(y0),(x2)-(x0),(y2)-(y0)))
 8 int main()
 9 {
10     int n;
11     while(scanf("%d",&n)!=EOF&&n)
12     {
13        int i;
14       
15            double x[3],y[3],aera=0;
16            scanf("%lf%lf",&x[2],&y[2]);
17            for(i=1;i<n;i++)
18            {
19                scanf("%lf%lf",&x[i%2],&y[i%2]);
20                if(i>1) aera+=get_aera(x[2],y[2],x[(i+1)%2],y[(i+1)%2],x[i%2],y[i%2]);
21            }
22            aera*=0.5;
23            if(aera<0) aera=-aera;
24            printf("%.0f\n",aera+1e-8);
25        
26     }
27     return 0;
28 }

posted on 2012-02-18 01:34 yzhw 阅读(237) 评论(0)  编辑 收藏 引用 所属分类: geometry&phycise


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

导航

统计

公告

统计系统

留言簿(1)

随笔分类(227)

文章分类(2)

OJ

最新随笔

搜索

积分与排名

最新评论

阅读排行榜