您的位置:首页 > 其它

pku 1654 Area(向量叉积算面积)

2009-08-18 21:38 337 查看
经典问题,求多边形面积,用向量叉积可以很好的解决。

#include <iostream>
using namespace std;
int move[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};
int main()
{
int n;
__int64 ans;
int x1,y1,x2,y2;
char next;
scanf("%d",&n);
while(n--)
{
ans=0;
x1=y1=0;
while(scanf("%c",&next)&&next!='5')
{
x2=x1+move[next-'0'][0];
y2=y1+move[next-'0'][1];
ans+=x1*y2-y1*x2;
x1=x2;
y1=y2;
}
if(ans<0) ans=-ans;
if(ans%2) printf("%.1f/n",((double)ans)/2);
else printf("%I64d/n",ans/2);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c