deg, dis =(int(x) for x in input().split()) direction = '' w = -1 lst_wind_direction =['NNE','NE','ENE', 'E','ESE','SE','SSE','S','SSW','SW','WSW','W', 'WNW','NW','NNW', 'N'] lst_wind_speed =[0.25, 1.55, 3.35, 5.45, 7.95, 10.75, 13.85, 17.15, 20.75, 24.45, 28.45, 32.65] lst_wind_distance =[x*60 for x in lst_wind_speed] deg /= 10 for i in range(16): if deg>=11.25+i*22.5 and deg < 11.25+(i+1)*22.5: direction = lst_wind_direction[i] break else: direction = 'N' for i in range(12): if dis < lst_wind_distance[i]: w = i break else: w = 12 if i == 0: print('C', 0) else: print(direction, w)
速度をroundで四捨五入する方法では上手くいない。結構苦労した。
メモ
- それぞれ別の変数に入れる時、a, b = (int(i) for i in input().split()) または、a, b = map(int, input().split())
- 方向は、((dis*10+1125)/2250)%16で0から15の数値に変換できる。
- 誤差の扱いが難しいので、割り算は使わないほうが良い。
- 最後までエラーが出ていたのは、cが小文字という理由だった。今後は気を付ける。