atcoder abc_001 を解いてみた(python3)
-A. [AC]積雪深差
# -*- coding: utf-8 -*- h1 = int(input()) h2 = int(input()) print(h1-h2)
読み取って、引き算。
-B. [AC]視程の通報
# -*- coding: utf-8 -*- m = int(input()) km = m/1000 vv = 0 if km <0.1: vv = 0 elif km<= 5: vv = km*10 elif km <= 30: vv = km+50 elif km <=70: vv = (km-30)/5+80 elif km > 70: vv = 89 print('{:0>2}'.format(int(vv)))
メートルをキロに直して、条件分け。
二桁で出力するために置換フィールド{}を使った。
Python, formatで書式変換(0埋め、指数表記、16進数など) | note.nkmk.me
-C. 風力観測 [WA 58/66]
[WA]になってしまう。誤差がどうとか・・・。
# -*- coding: utf-8 -*- deg ,dis = map(int,input().split()) d_lst = ['N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW'] w_lst = [0.2,1.5,3.3,5.4,7.9,10.7,13.8,17.1,20.7,24.4,28.4,32.6] deg = deg/10+11.25 num = deg//22.5 s = int(dis/6+0.5)/10 for i in range(len(w_lst)): if s <= w_lst[i]: w = i break else: w = 12 if w ==0: dir = 'C' else: dir = d_lst[int(num)] print(dir, w)
四捨五入するためにround()を使っていたが、round(2.5)は2に丸まるのでやめた。
小数第一位を四捨五入するには、0.5を足して小数を切り捨てればいい。
-D. 感雨時刻の整理