第三周练习题目——二分法1 水的高度
来源:互联网 发布:疯狂粤语 粤知一二 编辑:程序博客网 时间:2024/06/05 14:32
Problem G
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 98 Accepted Submission(s) : 27
Problem Description
The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the water in the cup, can you tell us it height? The radius of the cup's top and bottom circle is known, the cup's height is also known.
Input
The input consists of several test cases. The first line of input contains an integer T, indicating the num of test cases. Each test case is on a single line, and it consists of four floating point numbers: r, R, H, V, representing the bottom radius, the top radius, the height and the volume of the hot water. Technical Specification 1. T ≤ 20. 2. 1 ≤ r, R, H ≤ 100; 0 ≤ V ≤ 1000,000,000. 3. r ≤ R. 4. r, R, H, V are separated by ONE whitespace. 5. There is NO empty line between two neighboring cases.
Output
For each test case, output the height of hot water on a single line. Please round it to six fractional digits.
Sample Input
1100 100 100 3141562
Sample Output
99.999024总结:这道题做了很多次,反正每次都是因为一些小问题出现错误1)输入数据时候,不需要用while(~scanf("%d",&t))语句,原因是题目已知测试组数2)题目中水的体积计算公式:圆柱体的体积:V=pi*(r*r+R*R+r*R)/3.0(其中:pi #define pi 4.0*atan(1.0);r,R:两个底半径)3)此题采用二分法:以水的高度二分设水的高度已知,为hx,那么水高的取值为【0,100】4)在GCC的编译环境中,要将printf("%.4lf\n",mid);变为printf("%.4f\n",mid);代码如下:#include<stdio.h>#include<math.h>#define pi 4.0*atan(1.0)#define eps 1e-9double r,R,H,V;double f(double h){double k=h/H*(R-r)+r;return pi*h*(k*k+r*r+r*k)/3.0;}int main(){ int t; double left,right,mid; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf",&r,&R,&H,&V); left=0.0; right=100.0; while(right-left>eps) { mid=(right+left)/2.0; if(f(mid)>V) right=mid; else left=mid; } printf("%.6f\n",mid); }return 0;}
0 0
- 第三周练习题目——二分法1 水的高度
- 第三周练习题目—二分法 影子的最大长度
- 第三周练习——二分法2 方程求解
- 二分法练习题目
- 二分法的题目1 排队
- 第三周—二分法4 已知面积,求最大体积
- 一个二分法的面试题目
- 走在C语言的路上(练习1—树的高度)
- 第三周练习 递归1
- 需要练习的题目
- 第三季第一节课——题目1
- Javascript 二分法解方程 求量杯的高度
- 练习——后缀数组题目
- 第三周练习 随机数函数应用于游戏——计算器
- 题目练习1
- python练习题目1
- Python练习题目1
- 二分法经典题目
- Construct Binary Tree from Inorder and Postorder Traversal
- 字符串
- POJ 1077 八数码问题 练习搜索
- 有关main的返回值
- ORACLE EXTRACT函数
- 第三周练习题目——二分法1 水的高度
- 算法学习(四)冒泡排序
- MFC不同对话框之间的数据传递
- HDU 1513 Palindrome
- (25)ExtJS之面板Panel
- Android中的HAL相关库搜索机制和原理学习
- aoj连通图判断集合个数
- 【DFS 回溯】HDU 1045 Fire Net
- 关于red5搭建流媒体服务器(毕业设计跟进)