运行要求
运行时间限制: 2sec
内存限制: 1024MB
未经容许,不得许转载
原题目连接微信
题目
有一个时针,分针分别长为A厘米和B厘米的钟表。
时针和分针的一端被固定在同一个固定点。以这个固定点为中心,时针,分针按照必定的角速度旋转。时针每12小时转一周,分针每60分钟转一周。
0点的时候,时针和分针重合,求正好H时M分的时候,时针和分针的另外两个端点的距离less
输入前提条件spa
输入
输入按照如下形式标准输入code
AA BB HH MM
输出
去掉单位,和正确答案的偏差保持在10^-9如下的话为正确答案blog
例1
输入内存
3 4 9 0
输出get
5.00000000000000000000
如图所示,两个针的端点的距离是5input
例1
输入it
3 4 10 40
输出class
4.56425719433005567605
两根针如图所示,两根针按照必定的角速度旋转
解题思路
直角坐标系解析几何,欧式距离求法
详细稍后补上
先贴上代码
代码
import math A, B, H, M = map(int,input().split()) def calculate(a, b, h, m): hradians = ((h % 12) / 12)*360 + (((m/60) % 12) / 12)*360 mradians = (m / 60) * 360 hx = a * math.sin(math.radians(hradians)) hy = a * math.cos(math.radians(hradians)) mx = b * math.sin(math.radians(mradians)) my = b * math.cos(math.radians(mradians)) print(distance(hx,hy,mx,my)) def distance(x1,y1,x2,y2): return math.sqrt(abs(x1-x2)**2 + abs(y1-y2)**2) calculate(A, B, H, M) import math A, B, H, M = map(int,input().split()) def calculate(a, b, h, m): hradians = ((h % 12) / 12)*360 + (((m/60) % 12) / 12)*360 mradians = (m / 60) * 360 hx = a * math.sin(math.radians(hradians)) hy = a * math.cos(math.radians(hradians)) mx = b * math.sin(math.radians(mradians)) my = b * math.cos(math.radians(mradians)) print(distance(hx,hy,mx,my)) def distance(x1,y1,x2,y2): return math.sqrt(abs(x1-x2)**2 + abs(y1-y2)**2) calculate(A, B, H, M)
总结
这道题是一道几何体
解析几何或者纯几何的求法
※ 另外,我会在个人微信我的订阅号上推出一些文章,欢迎关注