HDU2036

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2036

題目要求:
求多邊形面積

思路:

分割

如圖,對(duì)所有相鄰坐標(biāo)點(diǎn)與原點(diǎn)構(gòu)成的三角形進(jìn)行矢量求和即是面積;
由平行四邊形的面積計(jì)算公式可得單個(gè)三角形的面積公式:(x1y2-y1x2)/2;
此題的坐標(biāo)為逆時(shí)針順序,不必取反。

代碼:

#include <stdio.h>
int main()
{
    int n, i;
    while (scanf("%d", &n) != EOF)
    {
        if (n == 0) {}
        else
        {
            int x[100], y[100];
            double ans = 0;
            for (i = 1; i <= n; i++)
            {
                scanf("%d", &x[i]);
                scanf("%d", &y[i]);
            }
            x[n + 1] = x[1];
            y[n + 1] = y[1];    //最后一點(diǎn)與第一點(diǎn)相連
            for (i = 1; i <= n; i++)
            {
                ans += (x[i] * y[i + 1] - y[i] * x[i + 1]) / 2.0;    //面積公式
            }
            printf("%.1f\n", ans);
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容