poj 1654 多边形面积计算

http://poj.org/problem?id=1654

简单的多边形面积计算,用叉乘公式即可。

c++提交

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int dir[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};
 4 int main()
 5 {
 6     int cas,i;
 7     int x1,y1,x2,y2;
 8     long long area;
 9     char s[1000005];
10     scanf("%d",&cas);
11     while(cas--)
12     {
13         scanf("%s",s);
14         x1=0;y1=0;area=0;i=0;
15         while(s[i]!='5')
16         {
17             x2=x1+dir[s[i]-'0'][0];
18             y2=y1+dir[s[i]-'0'][1];
19             area+=x1*y2-x2*y1;
20             x1=x2;
21             y1=y2;
22             i++;
23         }
24         if(area<0)
25             area=-area;
26         if(area%2)
27             printf("%lld.5\n",area/2);
28         else
29             printf("%lld\n",area/2);
30     }
31     return 0;
32 }
posted @ 2011-05-06 16:07  CoderZhuang  阅读(279)  评论(0编辑  收藏  举报