博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Do not pour out HDU - 5954 数学积分
阅读量:4576 次
发布时间:2019-06-08

本文共 1354 字,大约阅读时间需要 4 分钟。

题目:

思路:纯高等数学问题,不过不是很好积分,具体积分思路及过程参考大佬博客——

AC代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 #define pi acos(-1.0)10 11 double h;12 13 double cal(double a) {14 return pi * cos(a) - a * cos(a) + sin(a) - pow(sin(a), 3) / 3;15 }16 17 double calV(double b) {18 double a = acos(2 * tan(b) - 1.0);19 return (cal(a) - cal(pi)) / tan(b);20 }21 22 int main()23 {24 int T;25 scanf("%d", &T);26 while(T--) {27 scanf("%lf", &h);28 double v = pi * h;29 if(h < 1e-10)30 printf("0.00000\n");31 else if(h >= 1.0) {32 double a = atan(2.0 - h);33 printf("%.5f\n", pi / cos(a));34 }35 else {36 double l = 0, r = pi / 4;37 while(r - l > 1e-9) {38 double m = (l + r) / 2;39 if(calV(m) < v) 40 l = m;41 else42 r = m;43 }44 double x = 2 * tan(r);45 double a = acos(x - 1);46 double s = (pi - a + sin(a) * cos(a)) / sin(r);47 printf("%.5f\n", s);48 }49 }50 return 0;51 }

 

转载于:https://www.cnblogs.com/fan-jiaming/p/9748232.html

你可能感兴趣的文章
13.JOIN
查看>>
省市县三级联动
查看>>
多IP地址--笔记
查看>>
react native开发日记
查看>>
Virtual Dom是什么
查看>>
阶乘之和
查看>>
Unable to instantiate receiver xxx.receiver.NetworkReceiver异常
查看>>
C++调用C#类库函数
查看>>
vs2013编译项目去掉warning信息
查看>>
ASP.NET MVC html help
查看>>
C# 时间比较方法DateTime.Compare
查看>>
三级菜单小练习
查看>>
vim 插件管理
查看>>
Guid函数
查看>>
java的加减乘除问题
查看>>
Android 系统常用的权限
查看>>
类型参数约束 : Controller where T : class,new()
查看>>
N卡控制面板把physx设置为cpu
查看>>
Javsssist用InsertAt()方法对语句插桩
查看>>
java安装Jboss插件
查看>>