4701: 求阴影部分面积 

本文版权归BobHuang和博客园共有,不得转载。如想转载,请联系作者,并注明出处。

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 63            Accepted:40

Description

设正方形ABCD边长为a,分别以B和D为圆心,绘制半径为a的1/4圆,与正方形的内切圆相交与M、N、O、P点,求这些交点围成的阴影部分面积。

Input

输入数据有多组,每组输入一个正整数a(a<=20),表示正方形的边长,输入以EOF结束。

Output

每组输出一个小数,表示阴影部分的面积,保留为2位小数

Sample Input

2

Sample Output

1.97

Hint

圆周率PI取acos(-1.0)

Source

数信学院第六届新生程序设计竞赛

这个几何挺经典的,其实主要是利用了一个特殊的三角形。圆心角是圆周角的二倍

以前我在我博客里写过答案,现在一时间还真的竟然是推不出来的

写一下推演过程

红色三角形的三边是已知的,分别是1,√2,2

然后根据余弦定理求出∠1,∠2是∠1的两倍

有一个要求的扇形显而易见,其角度也能很快得到

本文版权归BobHuang和博客园共有,不得转载。如想转载,请联系作者,并注明出处。

减去两个三角形就是一半面积的一部分

一半的阴影剩下的一部分如上图所示

两个扇形找到了,三角形也可以求出来,直接手算出cosa啥的

很简单

求三角形面积 

double a=1.0,b=2.0,c=sqrt(2.0),s,area; 
s=(a+b+c)/2; 
area=sqrt(s*(s-a)*(s-b)*(s-c)); 
printf(“area=%.12f”,area); 

求一份的面积 
{double PI=acos(-1.0); 
double a1=acos(1.25/sqrt(2.0)); 
double a2=acos(-0.5/sqrt(2.0))-PI/2.0; 
double s=a1*2+a2/2-0.661437827766; 
printf(“%.12f”,s); 
}

因为a只有20,所以这样做的精度就没有问题,否则等比列变幻上去就好了

ac代码

#include <stdio.h>
int main()
{ int a;
while(~scanf("%d",&a)){
a*=1.0;
printf("%.2f\n",0.492635644*a*a);}
return ;
}

TOJ 4701 求阴影部分面积的更多相关文章

  1. Python求阴影部分面积

    一.前言说明 今天看到微信群里一道六年级数学题,如下图,求阴影部分面积 看起来似乎并不是很难,可是博主添加各种辅助线,写各种方法都没出来,不得已而改用写Python代码来求面积了 二.思路介绍 1.用 ...

  2. 微信群里一道六年级数学题,求阴影面积,那我只能用python代码了

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  3. 25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有

    package zhongqiuzuoye; //自己写的方法 public class Rect { public double width; public double height; Rect( ...

  4. POJ 1151 / HDU 1542 Atlantis 线段树求矩形面积并

    题意:给出矩形两对角点坐标,求矩形面积并. 解法:线段树+离散化. 每加入一个矩形,将两个y值加入yy数组以待离散化,将左边界cover值置为1,右边界置为2,离散后建立的线段树其实是以y值建的树,线 ...

  5. UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)

    Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...

  6. hdu 1542 扫描线求矩形面积的并

    很久没做线段树了 求矩形面积的并分析:1.矩形比较多,坐标也很大,所以横坐标需要离散化(纵坐标不需要),熟悉离散化后这个步骤不难,所以这里不详细讲解了,不明白的还请百度2.重点:扫描线法:假想有一条扫 ...

  7. 三角剖分求多边形面积的交 HDU3060

    //三角剖分求多边形面积的交 HDU3060 #include <iostream> #include <cstdio> #include <cstring> #i ...

  8. Art Gallery - POJ 1279(求内核面积)

    同上面几道题差不多,需要先求出来内核,然后直接用叉积求出来面积即可. 代码如下: #include<iostream> #include<string.h> #include& ...

  9. Area - POJ 1654(求多边形面积)

    题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走.求出最后的多边形面积. 分析:这个多边形面积很明显是不规则的, ...

随机推荐

  1. I/O————File对象

    File文件对象 文件和文件夹都是用File代表 创建一个文件对象,(并不会有真正的文件或文件夹被创建) File f1 = new File("d:/lolfilder"); S ...

  2. 解决Git在更新项目时报凭证错误(Authentication failed)

    报此错误,大概率原因是用户名和密码弄错了,我用的阿里云,在网上找了半天发现Git远程仓库用的用户名和密码不是阿里云登陆用的账户密码,必须另外设置: 链接:code.aliyun.com/profile ...

  3. Spring MVC 入门实例报错404的解决方案

    若启动服务器控制台报错,并且是未找到xml配置文件,初始化DispatchServlet失败,或者控制台未报错404,那么: 1.URL的排查: 格式-----------协议名://地址:端口号/上 ...

  4. django创建超级用户

    终端输入 python3 manage.py createsuperuser 按照提示进行操作即可 不输入用户名会给你默认一个用户名,输入密码是在原处不动的,其实已经在输入了. 创建超级用户是为了能够 ...

  5. link标签的media属性的用法

    <link rel=stylesheet" type="text/css" href="print.css" media="scree ...

  6. idea npm 调试报错解决办法

    1.用egg框架的开发时候,egg 提供本地开发和调试.点击idea 的debug 按钮时候报如下错误: Please specify npm or yarn package: cannot find ...

  7. 使用Azure CDN更快速的交付内容

    WEB加速服务是最基本也是应用最广泛的CDN加速服务,主要针对html文件,CSS,图片,JS,flash动画等更新频率低的小文件加速.通过将这些小文件缓存到Azure CDN的边缘节点,减少源站的访 ...

  8. Perl 输出内容到 excel

    可以参考:  http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel/lib/Spreadsheet/WriteExcel.pm 使用Spre ...

  9. Windows server 2012安装oracle11g(32/64位)步骤

    Oracle官方下地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html以下两网址 ...

  10. Java简答题附答案

    1. Java有没有goto? 有, Goto语句在java中作为保留字, 并没有实现它. 带标号的break, continue局限于循环体中跳转 带标号的goto可以在一个函数(c语言)中任意跳转 ...