HDU - 2036 改革春风吹满地

题目链接:

点击打开链接


/*
  算是自己做的第一道计算几何的题目,之前因为还没学到这个知识点,好像是遇到这个知识点就跳过了...
  
  查了许多题解,才明白该怎么写,以及为什么要这么写,其实主要就是一个公式,但是如果不知道这个公式,那就是不会做了...
  
  罗列一下查阅的链接:
  https://www.cnblogs.com/double-win/archive/2013/05/03/Double_win.html
  https://www.cnblogs.com/mycapple/archive/2012/08/06/2624617.html
  https://www.cnblogs.com/cykun/archive/2010/11/25/1887461.html
  http://blog.csdn.net/u014436243/article/details/38875405
*/

#include <iostream>
#include <iomanip>
#define rep(i, k, n) for (int i = k; i < (n); i++)
using namespace std;
const int N = 105;
int x[N], y[N], n;
double getArea()
{
	double s = 0.0;
	rep(i, 0, n)
	{
		int tp = (i + 1) % n; // tp:: temp
		s += x[i] * y[tp];
		s -= x[tp] * y[i];
	}
	s /= 2;
	return s > 0 ? s : -s;
}
int main()
{
	while (cin >> n && n)
	{
		rep(i, 0, n) cin >> x[i] >> y[i];
		cout << fixed << setprecision(1) << getArea() << endl;
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值