典型90

典型90 018 – Statue of Chokudai(★3)

競プロの精進のために学びがあった問題についてまとめています。 目標は AtCoder 水色!

今のレートは茶色です。

問題

典型90 018 - Statue of Chokudai(★3)を解きました。

考察

俯角とは?と一瞬なったものの、単にsinを求めればいいことがわかる。

コード

import math

def distance_point(x1, y1, x2, y2):
    d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
    return d

T = int(input())
L, X, Y = map(int,input().split())
Q = int(input())

for q in range(Q):
    e = int(input())
    radi = math.radians((360/T)*e-90)
    y = - L/2 * math.cos(radi)
    z = L/2 + L/2 * math.sin(radi)

    d = distance_point(0, y, X, Y)
    print(math.degrees(math.atan2(z, d)))

まとめ

単に三角関数の計算をしていくだけ、、、のはずだったのにかなりハマってしまった。

数学力が低い。

COMMENT

メールアドレスが公開されることはありません。