30過ぎて始めたプログラムの勉強(参照)の先生&テキストであるLearn to Programには、いくつかのチャプターの最後に『A Few Things to Try』(練習問題)が用意されている。ただチュートリアルを読むだけではなく、実際に頭を使ってコードを書くのは、それが身につくだけではなく、なかなかに楽しい。
ただ、その『A Few Things to Try』(練習問題)には回答が用意されていない。コードを書いて実行した結果を見て、その結果が合っていることは分かるとしても、そのコードがシンプルに正しく、言い換えれば美しく書かれているのか、というのは正直分からない。なので、ここに晒してみることにした。もしかしたら、誰かの突込みをもらえるかもしれないし、後になって自分で見て、恥ずかしくも微笑ましい気持ちになれるかもしれない。
というわけで、Chapter 1. Numbersの『A Few Things to Try』のMy回答。
A Few Things to Try on 1. Numbers
Write a program which tells you:
- how many hours are in a year?
- how many minutes are in a decade?
- how many seconds old are you?
- how many chocolates do you hope to eat in your life?
Warning: This part of the program could take a while to compute!Here’s a tougher question:
- If I am 1001 million seconds old, how old am I?
How many hours are in a year?
簡単簡単。
puts 24 * 365
How many minutes are in a decade?
これも簡単。
puts 60 * 24 * 365 * 10
How many seconds old are you?
こんな感じで。
puts 60 * 60 * 24 * 365 * 32
If I am 1001 million seconds old, how old am I?
むむむ。こんな感じか。
puts 1001000000 / (60 * 60 * 24 * 365)