hdu 2036 改革春风吹满地 (水)
利用多边形(n边形)面积计算公式:S=0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) ),
其中点(x0,y0), (x1, y1), ... , (xn,,yn)为多边形上按逆时针顺序的顶点((x0,y0)与(xn,yn)为同一点)。
#include<stdio.h> #include<math.h> #include<string.h> main() { int n,x1,y1,x2,y2,i,x,y; double sum; while(scanf("%d",&n)&&n) { sum=0; scanf("%d %d",&x1,&y1); x=x1;y=y1; for(i=0;i<n-1;i++) { scanf("%d %d",&x2,&y2); sum+=(x1*y2-x2*y1); x1=x2; y1=y2; } sum+=(x1*y-y1*x); printf("%.1lf\n",sum*0.5); } }