博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1905 Expanding Rods(木杆的膨胀)【数学计算+二分枚举】
阅读量:4705 次
发布时间:2019-06-10

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

                                                                                                          Expanding Rods
Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 13516   Accepted: 3484

Description

When a thin rod of length L is heated n degrees, it expands to a new length L'=(1+n*C)*L, where C is the coefficient of heat expansion.
When a thin rod is mounted on two solid walls and then heated, it expands and takes the shape of a circular segment, the original rod being the chord of the segment.
Your task is to compute the distance by which the center of the rod is displaced.

Input

The input contains multiple lines. Each line of input contains three non-negative numbers: the initial lenth of the rod in millimeters, the temperature change in degrees and the coefficient of heat expansion of the material. Input data guarantee that no rod expands by more than one half of its original length. The last line of input contains three negative numbers and it should not be processed.

Output

For each line of input, output one line with the displacement of the center of the rod in millimeters with 3 digits of precision.

Sample Input

1000 100 0.000115000 10 0.0000610 0 0.001-1 -1 -1

Sample Output

61.329225.0200.000 题目:可以这样理解,给你一根木杆,夹在某物体之间。现在木杆会受热膨胀,膨胀增长,在两端物体的挤压下就会变弯曲,如上图所示。 从一根直的木杆变到弯曲的木杆,两种状态下,木杆中间位置的高度差是多少? 解法全在上面的图片中! 代码:
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-5using namespace std;int main(){ // L'=(1+n*C)*L double L, n, c; while(scanf("%lf %lf %lf", &L, &n, &c)!=EOF) { if(L<0 && n<0 && c<0) break; double low=0.0; double high=0.5*L; double mid; double s=(1.0+n*c)*L; double R; while(high-low>eps){ mid=(low+high)/2.0; R = (4*mid*mid+L*L)/(8*mid);//化简成一次除法 减小精度误差 if(2*R*asin(L/(2*R)) < s) low=mid; else high=mid; } printf("%.3lf\n",mid); } return 0;}

 

 

转载于:https://www.cnblogs.com/yspworld/p/4729159.html

你可能感兴趣的文章
关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
查看>>
adb shell am 的用法
查看>>
iOS10 UI教程视图和子视图的可见性
查看>>
FindChildControl与FindComponent
查看>>
中国城市json
查看>>
android下载手动下载Android SDK
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
leetcode133 - Clone Graph - medium
查看>>
UNET学习笔记2 - 高级API(HLAPI)
查看>>
"ORA-00942: 表或视图不存在 "的原因和解决方法[转]
查看>>
Oauth支持的5类 grant_type 及说明
查看>>
C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)
查看>>
W3100SM-S 短信猫代码发送 上
查看>>
监听SD卡状态
查看>>
serialVersionUID的作用
查看>>
(14)嵌入式软件开发工程师技能要求总结
查看>>
[hackerrank]Closest Number
查看>>
[Android] TabLayout设置下划线(Indicator)宽度
查看>>
netty接收大文件的方法
查看>>
软件工程设计之四则运算
查看>>