zoukankan      html  css  js  c++  java
  • nyoj--1011--So Easy[II](数学几何水题)

    So Easy[II]

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
    描述

    这是一道基础的计算几何问题(其实这不提示大家也都看的出)。问题描述如下:

    给你一个N边形。且N边形的点是由顺时针顺序给出,求这个N边形的面积。(3<N<100)

    输入
    输入多组数据。
    第一行输入一个N。
    接下来N行每行有两个数a,b表示一个点。0<a,b<100(不会出现重复的点)
    输出
    输出N变形的面积,最终结果保留两位小数。(不要输出多余的信息)
    样例输入
    378 28 94 19 35 97 
    样例输出
    358.50


    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    struct node
    {
    	double x,y;
    }p[10010],a,b,c;
    int main()
    {
    	int n;
    	while(scanf("%d",&n)!=EOF)
    	{
    		for(int i=1;i<=n;i++)
    		scanf("%lf%lf",&p[i].x,&p[i].y);
    		double sum=0;
    		c=p[1];
    		for(int i=2;i<n;i++)
    		{
    			a=p[i],b=p[i+1];
    			sum+=0.5*((a.x-c.x)*(b.y-c.y)-(a.y-c.y)*(b.x-c.x));
    		}
    		printf("%.2f
    ",fabs(sum));
    	}
    	return 0;
    }



  • 相关阅读:
    服务器切换
    闭包函数
    函数对象+嵌套
    lvs讲解
    了解python
    rang enumerate
    set-集合功能介绍
    元组-tuple功能介绍
    dict-字典功能介绍
    list-列表功能介绍
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273684.html
Copyright © 2011-2022 走看看