20/04/19 18:05:16.51 3h7RKaJW.net
>>234 Perl5 (問題の意図をくみ取り違えていなければ、下記で良い筈…ただし実の距離が一桁以下の場合はNGかも…)
for $s (qw{0.003 0.01 0.4 0.96}) {
$d = 1;
while ($s * $d < 10) { $d *= 10 }
if (50 <= ($s * $d)) {
$d *= 2;
} elsif (20 <= ($s * $d)) {
$d *= 5;
} else {
$d *= 10;
}
print "$s -> ", $s * $d, "\n";
}
実行結果
~ $ perl 17_234_scale_bar_len.pl
0.003 -> 150
0.01 -> 100
0.4 -> 200
0.96 -> 192