zoukankan      html  css  js  c++  java
  • [SDJX2015]面积

    【问题描述:】

    一个六边形的每个内角均为120°,按顺时针给定它每条边的长度,求它的面积与边长为1的等边三角形的面积的比值。

    【输入:】

    一行六个整数a,b,c,d,e,f,表示六条边的长度。

    【输出:】

    一行一个整数表示面积的比值。

    【输入输出样例:】

    area.in

    area.out

    1 2 1 2 1 2

    13

    【数据范围:】

    对于全部的数据,1<=a,b,c,d,e,f<=1000;

    【思路】

           解法一:对余弦定理可以求出每两个不相邻顶点间的边,可以把六边形分成四个三角形用海伦公式求出面积即可。

           解法二:可以延长六边形个边把其变成一个大的等边三角形,可以推出新补得三角形都是等边三角形,用等边三角形面积公式求出并做差即可。

    【解法一】

    var a,b,c,d,e,f,ans,s1,s2,s3,t1,t2,t3,tt:real;
    function ss(x,y,z:real):real;
    var p:real;
    begin
        p:=(x+y+z)/2;
        ss:=sqrt(p*abs((p-x))*abs((p-y))*abs((p-z)));
    end;
    
    function yuxian(x,y:real):real;
    begin
        yuxian:=sqrt(x*x+y*y+x*y);
    end;
    //余弦定理
    
    begin
        assign(input,'area.in');
        assign(output,'area.out');
        reset(input);
        rewrite(output);
        ans:=0;
        readln(a,b,c,d,e,f);
        s1:=yuxian(a,b);
        t1:=ss(a,b,s1);
        ans:=ans+t1;
        s2:=yuxian(c,d);
        t2:=ss(c,d,s2);
        ans:=ans+t2;
        s3:=yuxian(e,f);
        t3:=ss(e,f,s3);
        ans:=ans+t3;
        tt:=ss(s1,s2,s3);
        ans:=ans+tt;
        tt:=ss(1,1,1);
        ans:=ans/tt;
        writeln(ans:0:0);
        close(input);
        close(output);
    end.
  • 相关阅读:
    linux 查看数据库和表
    使用Java实现发送email邮件
    kafka使用说明书
    关于hadoop各种项目中用到的maven依赖
    阿里云服务器快速搭建自己的个人网站
    CentOS7命令大全
    solr中文分词
    windows安装MySQL详细图解过程
    spark数据倾斜分析与解决方案
    浅谈KMlib(机器学习)
  • 原文地址:https://www.cnblogs.com/yangqingli/p/4714581.html
Copyright © 2011-2022 走看看