HDU2036

本文章仅用于笔记。部分知识点来源于网络,授权请联系作者([email protected])。

题目
HDU2036

JAVA 代码
HDU2036

注释
8//监听
9//多次输入
11//输入多边形的边数
12-15//如果边数为0,即程序退出。
16//定义一个数组a,用于存放顶点坐标。
17//定义一个类型为单精度的变量s,用于存放顶点坐标。因为一个顶点坐标有两个值,所以长度为2n。
18-21//将输入的值存入数据a。
22-32//计算s的数值。如果i还未循环到最后一个坐标点即执行语句1(第26行),如果循环到最后一个坐标点即执行语句2(第30行)。
26// 坐标的运算,如果数据为(x1,y1)(x2,y2),运算的过程为x1*y2-x2*y1。
30//坐标的运算,如果是最后一个坐标,即xn*y1-yn*x1。
33//多边形面积,所以取s的一半。
34-37//取s的绝对值。
38//输出面积s。

知识点
多边形的计算公式
|x1 y1| |x2 y2| |xn yn|
0.5 * abs( | | + | | +…+ | | )=0.5*abs(x1*y2-y1*x2+x2*y3-y2*x3+…+xn*y1-yn*x1)