このコードを単純化するにはどうすればよいですか?
if number < 100
divisor = 10
elsif number < 1000
divisor = 100
elsif number < 1000000 # 1 million
divisor = 1000
elsif number < 1000000000 # 1 billion
divisor = 1000000
elsif number < 1000000000000 # 1 trillion
divisor = 1000000000
# Keep goin...
end
ここでのポイントは...
- 番号が
>= 0で、< 100必要な場合はdivisor = 10. - 番号が
>= 100で、< 1.000必要な場合はdivisor = 100. - 番号が
>= 1.000で、< 1.000.000必要な場合はdivisor = 1.000. - 番号が
>= 1.000.000で、< 1.000.000.000必要な場合はdivisor = 1.000.000. - これが永遠に続く..
whileとの組み合わせをいくつか試しましたpowが、ここではパターンがわかりません。