院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

プログラミングの基礎

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

結局、前作を買いました。
こっちのほうが問題が簡単。
ただ、この人のコードの書き方が読みづらい。

とりあえず解いた履歴を置いておく。
githubにも慣れたいから余裕があったらそっちにも上げていく

# Q4
# 入力:人の数、棒の長さ、現在の棒の数
# 出力:切った回数
def cutbar(people, len, accNum = 1)
  # 棒の数が長さより多くなったら終了
  return 0 if accNum >= len

  # 切られる棒の数
  cntCut = [accNum, people].min

  # 切った回数をプラスして、棒の数を更新
  1 + cutbar(people, len, accNum + cntCut)
end

puts cutbar(3, 20)