您的位置:首页 > 编程语言 > Go语言

2016-计蒜之道-初赛-第二场-A-联想公司的logo设计

2016-06-05 14:16 495 查看

描述

联想公司最近要设计一个体现公司文化的 logo。联想的设计师想出了一个方案:先画了一个顶点

O,接着画出以顶点 O 为公共顶点的、夹角为θ 的两条线段l1和l2,其中l1作为圆 C1的直径,l2作为圆 C2的直径。两个圆需要画在同一个圆形的塑料板上。请算出这个塑料板最小的面积是多少。

输入格式

输入只有一行,一共 3个浮点数 l1、l2和 θ。其中0≤l1,l2≤1000;−1000≤θ≤1000。

θ的单位是度,即当 θ 为 90度时,sinθ=1。

输出格式

输出一行,表示圆形塑料板的最小面积。结果误差在

1 0^−6以内均被认为是正确的。

样例输入1

1 1 90

样例输出1

2.2888179796

样例输入2

6 6 -666

样例输出2

59.774440524

题解

一道简单的数学几何问题,只要知道圆心在哪一个部分,就可以顺利求出来半径,这里需要用到三角函数,两边一角,求第三边,再根据第三边和已知两个半径求最大圆的半径。

代码C:

#include <stdio.h>
#include <math.h>
#define PI 3.1415926535898

int main(int argc, const char * argv[])
{
double lOne, lTwo, angle;

while (~scanf("%lf %lf %lf", &lOne, &lTwo, &angle))
{
double lThree = sqrt(lOne * lOne + lTwo * lTwo - 2 * lOne * lTwo * cos(angle / 180 * PI));
double D = lThree / 2 + lOne / 2 + lTwo / 2;
double area = PI * D / 2 * D / 2;
printf("%.10lf\n", area);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  几何