運行要求
運行時間限制: 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)
總結
這道題是一道幾何體
解析幾何或者純幾何的求法
※ 另外,我會在個人微信我的訂閱號上推出一些文章,歡迎關注