このコードを単純化するにはどうすればよいですか?
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
が、ここではパターンがわかりません。