标签:
当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L‘=(1+n*C)*L,其中C是热膨胀系数。
当一根细木棍被嵌在两堵墙之间被加热,它将膨胀形成弓形的弧,而这个弓形的弦恰好是未加热前木棍的原始位置。
你的任务是计算木棍中心的偏移距离。
1000 100 0.0001
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #define pi=3.14159263589793 5 using namespace std; 6 int main() 7 { 8 double l,n,c,ll,left,mid,right; 9 scanf("%lf%lf%lf",&l,&n,&c); 10 ll=(1+n*c)*l; 11 left=0; 12 right=asin(1.0); 13 while (right-left>1e-14) 14 { 15 mid=(right+left)/2; 16 if (ll*sin(mid)/mid<=l) 17 right=mid; 18 else 19 left=mid; 20 } 21 printf("%.3lf",l/2*tan(left/2)); 22 return 0; 23 }
网上找的公式,因为不知道C++的sin是弧度制计算,且不会弧度制。。
标签:
原文地址:http://www.cnblogs.com/DMonster/p/5004431.html