鶴亀算をプログラミングっぽく書き直す

鶴亀算を数日前の記事(Ruby鶴亀算を書いてみる)で書きました。
んで、それを"for"を使って書き直してみようと思います。
全匹が鶴だとして、「鶴の数から予想される足の数」と「指定された足の数」で差をとります。
それを、「鶴の脚と亀の足の差」で割って鶴の数を出します。

cranes_num = (sum * 4 - legs_num) / 2
puts("鶴は#{cranes_num}匹 亀は#{sum - cranes_num}匹")

この式を考えるのは難しいので、その部分をPCに任せようと思います。つまり、「鶴の数と亀の数を1匹ずつ考えてくれ」ということです。それを"for"を使って考えると・・・

#  
…省略…
found = false
for turtles in (0..max_turtles)
  cranes = heads - turtles
  if  cranes >= 0 && legs == (cranes * 2 + turtles * 4)
    found = true
    break
  end
end
…省略…

forを最大限使ったうまい考え方だぁ〜・・・
式とか深く考えなくていいから幸せ