Area of polygons
单点时限: 2.0 sec
内存限制: 512 MB
现在有a个边长为1的正方形,b个半径为1的圆,c个边长为1的等边三角形,现在你随机拿出一个图形,求这个图形面积的期望。
输入格式
第一行输入一个T,代表输入的组数。(1≤T≤100)
接下来T行,每行三个数字a,b,c(1≤a,b,c≤1000)。
输出格式
输出T行,对于每一组输入,输出面积的期望,小数点后保留三位小数。
样例
input
3
1 2 3
4 5 6
7 8 9
output
1.430
1.487
1.501
提示
圆周率为3.1415926535897
涉及知识点:
1、期望:数学期望简称期望,又称均值,它反映随机变量平均取值的大小。
2、math函数库的使用:
头文件的引用:#include <math.h>
函数名:sqrt 函数原型:double sqrt(double x);
3、自动转换
当自动转换用于算数运算(加、减、乘、除、取余运算)时可称为算数转换。
转换的原则是:自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算类型转换,以便得到较高精度的运算结果。下面的除法运算用到了算数转换。
代码实现:
#include <stdio.h>
#include <math.h>
int main()
{
int n, i, a, b, c;
double sum;
scanf("%d", &n);
for(i = 0; i < n; i ++ )
{
scanf("%d %d %d", &a, &b, &c); //这儿要注意一下,直接一行输入,讲究效率,之前分成三行输入可傻了
sum = (a + b * 3.1415926535897 + c * sqrt(3) / 4 ) / (a + b + c); //此处π的数值可以用M_PI代替,M_PI和e的数值M_E都包含在头文件<math.h>中。
printf("%.3lf\n", sum);
}
}
这个题很简单,但是却费了大量心血,因为好像编译器出问题了,一直wrong answer,疯狂自闭,费了1个多小时,结果在其他电脑上一遍就过了。所以要觉得我的代码写的还不错,就点个赞再走吧hh。