uva 10209 Is This Integration?
来源:互联网 发布:保利尼奥 知乎 编辑:程序博客网 时间:2024/05/17 07:39
题目大意:
一个正方形,以每个顶点为中心划圆,这样得到一个3中不同的阴影部分,求各个部分的面积。
算法分析:
这个题目纠结一个小时,开始以为列3个方程就好了,其实只能列出两个方程,你列出的第三个都能通过前两个解出。
先给出一幅图:
从这幅图中我们可以得到下面两个方程,一个是整体的正方形的面积,一个是扇形的面积。
x + 4 * y + 4 * z = a * a;
x + 3 * y + 2 * z = PI * a * a / 4;
但是这样解不出x,y,z。必须还要一个方程,下面我给出求出z的方法,书上说用鸽巢原理,但是没想明白,只有自己手动算了。
通过上图我们知道:绿色的等边三角形的面积(等边三角形的边长为:(2 * sqrt(3) / 3 - 1) * a),绿色三角形加上红色图形的面积的和 = 大的直角三角形的面积(sqrt(3)* a * a / 6)减去扇形的面积(1/12个圆),这样z的面积很贱就能计算出来了。有了z,在加上上面的两个公式,很容易解出x和y。1A。(注意图中圆弧是手画的,不要看错了,红色阴影不是三角形,有一个边是曲线,是圆的边,所以计算面积要计算扇形的面积。)
最终公式:
z = a * a * (1.0 - PI / 6.0 - sqrt(3.0) / 4.0);y = a * a - PI * a * a / 4.0 - 2.0 * z;x = a * a - 4 * y - 4 * z;
代码:
#include <stdio.h>#include <math.h>#define PI acos(-1.0)int main(){double a;while(scanf("%lf", &a) != EOF){double x,y,z;z = a * a * (1.0 - PI / 6.0 - sqrt(3.0) / 4.0);y = a * a - PI * a * a / 4.0 - 2.0 * z;x = a * a - 4 * y - 4 * z;printf("%.3lf %.3lf %.3lf\n", x, 4.0 * y, 4.0 * z);}return 0;}
- uva 10209 Is This Integration?
- [uva] 10209 - Is This Integration ?
- UVA 10209 - Is This Integration
- UVA 10209 Is This Integration ?
- UVa 10209 - Is This Integration ?
- UVa Problem 10209 Is This Integration? (需要积分吗?)
- UVA 10209(Is This Integration ?-容斥原理)
- uva 10209 Is This Integration ? (计算几何)
- UVa 10209 Is This Integration ?(计算几何)
- UVA 343 What Base Is This?
- UVa 11479 - Is this the easiest problem?
- UVa 343 - What Base Is This?
- uva 343 What Base Is This?
- maven Integration is disabled
- Materialized View Integration Is Over
- Continuous Integration is your best friend
- Integration
- This is a test
- oracle 11g RAC 的一些基本概念(三)
- How-to launch browser print dialog when showing printable page
- zoj_1170
- 菜鸟初学java心得
- Axis2
- uva 10209 Is This Integration?
- IOS 数据存储
- 约瑟夫问题数学解法
- 欧拉函数
- 数据绑定--Repeater, DataList, or GridView?
- 最近在看书
- C#网络编程初步之TCP
- 怎么把 CDialogBar像工具条一样使用,有图有真相
- 用jsp分别连接oracle、mysql数据库