Pythonで理解する蟻本「3-2 Physics Experiment(POJ No.3684)」(p.145)
この記事は「プログラミングコンテストチャレンジブック第2版」(蟻本)の
「3-2 Physics Experiment(POJ No.3684)」(p.145)
のコードをPythonで書き直したものとなっています。
入力
入力例1
1 10 10 100
入力例2
2 10 10 100
解答
g = 10.0 # 重力加速度 # 入力 N, H, R, T = map(int,input().split()) y = [0] * N # 最終的なボールの位置 # 時刻Tでのボールの位置を求める def calc(T): if T < 0: return H t = (2 * H / g) ** 0.5 k = T // t if k % 2 == 0: d = T - k * t return H - g * d * d / 2 else: d = k * t + t - T return H - g * d * d / 2 for i in range(N): y[i] = calc(T - i) y.sort() print(*['{:.2f}'.format(y[i] + 2 * R * i / 100) for i in range(N)])