叉积求多边形面积
#include<stdio.h>
int a[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};//方向向量,想起了广搜的方向向量。。。
int main(){
__int64 area;
int i,n;
char ch;
int x1,y1,x2,y2;
scanf("%d",&n);
getchar();
while(n--){
area=0;x1=0;y1=0;
while((ch=getchar())!='\0'){
if(ch=='5') break;
x2=x1+a[ch-'0'][0];
y2=y1+a[ch-'0'][1];
area+=x1*y2-x2*y1;
x1=x2;
y1=y2;
}
if(area<0)
area=-area;
printf(area%2==0?"%I64d\n":"%I64d.5\n",area/2);
}
}