• Tell me the area---hdu1798 (数学 几何)


    http://acm.hdu.edu.cn/showproblem.php?pid=1798

    给你两个圆求阴影部分的面积

    求出两个扇形的面积减去四边形的面积

    扇形的面积是度数(弧度制)*半径的平方

    不能用PI 3.1415926   要用acos(-1.0);

    求四边形面积就是两个三角形   用海伦公式

    因为精确度比较高   所以就不能用PI 3.1415926

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <cstdio>
    #include <cstdlib>
    #include <cctype>
    #include <math.h>
    
    using namespace std;
    #define memset(a,b) memset(a,b,sizeof(a))
    #define N 1100000
    typedef long long  ll;
    #define PI 3.1415926
    
    int main()
    {
        double x1,y1,r1,x2,y2,r2;
        while(scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&r1,&x2,&y2,&r2)!=EOF)
        {
            double rr=min(r1,r2);
            double l=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
            if(l>=r1+r2)
            {
                printf("0.000
    ");
                continue;
            }
            else if(l<=fabs(r1-r2))
            {
    
                printf("%.3lf
    ",acos(-1.0)*rr*rr);
                continue;
            }
            double cos1=(r1*r1+l*l-r2*r2)/(2.0*r1*l);
            double cos2=(r2*r2+l*l-r1*r1)/(2.0*r2*l);
    
            double ss1=r1*acos(cos1)*r1;///r1扇形的面积
            double ss2=r2*acos(cos2)*r2;
            double p=(r1+r2+l)/2.0;///
            double S=2*sqrt(p*(p-r1)*(p-r2)*(p-l));///四边形的面积
            printf("%.3lf
    ",ss1+ss2-S);
        }
        return 0;
    }
  • 相关阅读:
    Vue 项目目录结构分析
    Vue 项目环境搭建
    Vue 组件
    Vue 指令
    Vue 实例成员
    Django 静态文件
    MySQL 索引详解
    Django 请求生命周期
    18. 4Sum (JAVA)
    16. 3Sum Closest (JAVA)
  • 原文地址:https://www.cnblogs.com/linliu/p/5396734.html
Copyright © 2020-2023  润新知