AtCoder Beginner Contest 165 提出コード(Ruby)

ABC 4回目の参加

5月2日に開催されたAtCoder Beginner Contest 165に参加しました。言語はRubyです。

今回、AC(正解)はA・B問題だけでした。全体的に難しかった…

とりあえず、解答コードです。

各問題の制約や入力・出力例はリンク先(AtCoderのサイト)をご覧ください。

A - We Love Golf

問題文
ジャンボ高橋君はゴルフの練習をすることにしました。
ジャンボ高橋君の目標は飛距離を K の倍数にすることですが、ジャンボ高橋君の出せる飛距離の範囲は A 以上 B 以下です。
目標の達成が可能であれば OK と、不可能であれば NG と出力してください。

入力
入力は以下の形式で標準入力から与えられる。
K
A B

A - We Love Golf

提出したコード

k = gets.to_f
a, b = gets.split.map(&:to_i)
c = (a / k).ceil
d = (b / k).floor
puts d - c >= 0 ? "OK" : "NG"

結果:AC(正解) 実行時間:53 ms

B - 1%

問題文
高橋くんはAtCoder銀行に 100 円を預けています。
AtCoder銀行では、毎年預金額の 1 % の利子がつきます(複利、小数点以下切り捨て)。
利子以外の要因で預金額が変化することはないと仮定したとき、高橋くんの預金額が初めて X 円以上になるのは何年後でしょうか。

入力
入力は以下の形式で標準入力から与えられる。
X

B - 1%

提出したコード

x = gets.to_i
total = 100
n = 0
while total < x
  total = (total * 1.01).floor
  n += 1
end
puts n

結果:AC(正解) 実行時間:55 ms

感想

難しかったです。AもBも時間がかかりました。

C問題よりD問題の方が正解者が多かったらしいです。

レートは16上がって51になりました。C問題までは復習するつもりです。