最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

弯曲的木棍

IT圈 admin 4浏览 0评论

弯曲的木棍

弯曲的木棍点击打开链接

总时间限制:
1000ms
内存限制: 65536kB
描述

当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L'=(1+n×C)×L,其中C是热膨胀系数。 
当一根细木棍被嵌在两堵墙之间被加热,它将膨胀形成弓形的弧,而这个弓形的弦恰好是未加热前木棍的原始位置。 
你的任务是计算木棍中心的偏移距离h

输入
输入包含多行,每行输入包括3个 非负数:细木棍的初始长度L,温度的变化n,材料的热膨胀系数C。输入数据保证细木棍伸长的长度 不会超过原长的一半,最后一行为3个-1, 不做处理
输出
对每一行输入,输出细木棍的中心在受热前后移动的距离,精确到 小数点后3位
样例输入
1000 100 0.0001
15000 10 0.00006
10 0 0.001
-1 -1 -1
样例输出
61.329
225.020
0.000
















源码

#include<cstdio>  
#include<iostream>   
#include<algorithm>  
#include<cstring>
#include<cmath>
using namespace std;
double L,n,c,l,r,b;
void tann(double l,double r)
{double mid=(l+r)/2,R=(mid*mid+L*L/4)/(2*mid),b1=2*asin(L/2/R)*R;if(r-l<1e-4)//控制精度于0.0001printf("%.3lf\n",mid);elseif(b1==b)printf("%.3lf\n",mid);elseif(b1<b)tann(mid,r);elsetann(l,mid);
}//分治求值
int main()
{  while(scanf("%lf %lf %lf",&L,&n,&c))//循环输入{if(L==-1)return 0;b=(1+n*c)*L;tann(0,L/2);}return 0;  
}  
谢谢观赏!!!


弯曲的木棍

弯曲的木棍点击打开链接

总时间限制:
1000ms
内存限制: 65536kB
描述

当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L'=(1+n×C)×L,其中C是热膨胀系数。 
当一根细木棍被嵌在两堵墙之间被加热,它将膨胀形成弓形的弧,而这个弓形的弦恰好是未加热前木棍的原始位置。 
你的任务是计算木棍中心的偏移距离h

输入
输入包含多行,每行输入包括3个 非负数:细木棍的初始长度L,温度的变化n,材料的热膨胀系数C。输入数据保证细木棍伸长的长度 不会超过原长的一半,最后一行为3个-1, 不做处理
输出
对每一行输入,输出细木棍的中心在受热前后移动的距离,精确到 小数点后3位
样例输入
1000 100 0.0001
15000 10 0.00006
10 0 0.001
-1 -1 -1
样例输出
61.329
225.020
0.000
















源码

#include<cstdio>  
#include<iostream>   
#include<algorithm>  
#include<cstring>
#include<cmath>
using namespace std;
double L,n,c,l,r,b;
void tann(double l,double r)
{double mid=(l+r)/2,R=(mid*mid+L*L/4)/(2*mid),b1=2*asin(L/2/R)*R;if(r-l<1e-4)//控制精度于0.0001printf("%.3lf\n",mid);elseif(b1==b)printf("%.3lf\n",mid);elseif(b1<b)tann(mid,r);elsetann(l,mid);
}//分治求值
int main()
{  while(scanf("%lf %lf %lf",&L,&n,&c))//循环输入{if(L==-1)return 0;b=(1+n*c)*L;tann(0,L/2);}return 0;  
}  
谢谢观赏!!!


与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论