[2166]多角形の面積
1451 ワード
コード#コード#
多角形を三角形に割る.
三角形->靴紐で整理する.
解決策 x,y input, 各三角形の幅を求める さらに出力 を加算
混同点 x、yの先頭はintです.x,yが大きな数字の場合、オーバーフローが発生し、 が二重精度で修復される.
最後に absをします.私はすべての区域に対してすべてabsをして、考えて、すべての和を求めて、それから全体はすべてabsをして、ほほほ...
クレイジーだね、、、
#include <iostream>
using namespace std;
#include <algorithm>
#include <cmath>
double x[10001];
double y[10001];
double area[10001];
int main(void)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> x[i] >> y[i];
}
for (int i = 0; i < n - 2; i++)
{
area[i] = ((x[0] - x[i + 1]) * (y[0] - y[i + 2]) - (x[0] - x[i + 2]) * (y[0] - y[i + 1])) / 2.0;
}
double sum = 0.0;
for (int i = 0; i < n - 2; i++)
{
sum += area[i];
}
cout.precision(1);
cout << fixed;
cout << abs(sum);
return 0;
}
質問へのアクセス多角形を三角形に割る.
三角形->靴紐で整理する.
解決策
混同点
最後に
クレイジーだね、、、
Reference
この問題について([2166]多角形の面積), 我々は、より多くの情報をここで見つけました https://velog.io/@worldicate/2166-다각형의-면적テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol