186かなぁって思ってる。

セオリー好きのCDMA1な西さんからの質問です。
500の病室をもつA病院では、病室の番号として001から順に3桁の番号を割り当てている。
ただし、どの桁にも4と9の数字を使用しないことになっている。
この病院の125番目の病室の番号はどれか?
どうやって求めるのでしょうか?


おれ頑張る。ビバ日曜プログラマ

perl

#!/usr/bin/perl -w                                                                                                                                                                                      
use strict;                                                                                                                                                                                               
                                                                                                                                                                                  
my %room_numbers;                                                                                                                                                                                         
my $number = 1;                                                                                                                                                                                           
for (my $num = 1; $num <= 500; $num++) {                                                                                                                                                              
  my $f_number = sprintf ("%03d", $number);                                                                                                                                                            
                                                                                                                                                                                                          
  #  $f_numberに4,9が含まれる場合は$numberに加算を繰り返す                                                                                                                                              
  while ($f_number =~ m/(4|9)/g) {                                                                                                                                                                      
    $number++;                                                                                                                                                                                        
    $f_number = sprintf ("%03d", $number);                                                                                                                                                            
  }                                                                                                                                                                                                     
                                                                                                                                                                                                          
  $room_numbers{"$num"} = $f_number;                                                                                                                                                                    
  $number++;                                                                                                                                                                                            
}                                                                                                                                                                                                         
                                                                                                                                                                                                          
print $room_numbers{'125'}."\n";                                

Yahoo知恵袋にあったからやってみたけど、
今見たら消えてた。
ちぇっ。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1425222739

と思ったら、あった。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1125226236


気持ちよかったです。