アットウィキロゴ

Area of Polygons

1100 : Area of Polygons



解説

与えられた座標値から多角形の面積を求める問題。
外積を利用して面積を求める。
n点からなる多角形の面積を求める | イメージングソリューション←ここに詳しい解説が載ってます。


プログラム

C


C++

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;

int main() {
	int n, cnt = 1;
	int v[50+1][2];
	while (cin >> n, n) {
		for (int i = 1; i <= n; i++) {
			cin >> v[i][0] >> v[i][1];
		}

		double s = 0;
		for (int i = 1; i < n; i++) {
			s += v[i][0]*v[i+1][1]  - v[i+1][0]*v[i][1];
		}
		s += v[n][0]*v[1][1] - v[1][0]*v[n][1];

		s = fabs(s)/2.0;

		printf("%d %.1f\n", cnt, s);
		cnt++;
	}

	return 0;
}

Java

最終更新:2012年12月09日 16:59