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);
	}
}


posted on 2012-08-06 16:12  Slege  阅读(91)  评论(0编辑  收藏  举报

导航