子供の落書き帳 Remix

15/4/13:ひと月に一度更新するブログになってしまっている

Project Euler 56
2011/11/24(木) 14:31:35

思いつきでコードを公開してみる。
問題はこれ Problem 56 - Project Euler
Ruby。30分くらい。

def digitsum(x)
  if not Integer === x then
    return "error"
  end
  
  dsum = 0
  while x != 0
    dsum += x % 10
    x = x / 10
  end
  return dsum
end

max = 0
for a in 1..99
  for b in 1..99
    c = digitsum(a**b)
    if max < c then
      max = c
      a1 = a
      b1 = b
    end
  end
end
puts max
puts a1,b1



上のソースコード、タブ文字も半角空白も表示されないから
全角空白で表示させるという醜悪なことをするはめに……(´・ω・`)

最後のputs maxを「puts c」とずっと書いていて、「答えが間違ってる」と言われた。
しばらく気づかなかったし……

Rubyで「これがあるクラスに属するかの判定」ってどうやるのか、しばし迷った。
今回は本質的なことじゃないけれど。

Ruby/インスタンスが任意のクラスのインスタンスかどうか判定する - 俺の基地
を見て演算子「===」を使ったけど、

Rubyのお勉強第4回、クラスの判別編 - Unknown::Programming
instance_of?とis_a?の違い - mic_footprints
を見ると……

is_aとかkind_ofとかinstance_ofとか色々あるみたいね。
細かい違いもあるようだけど今回は省略っと。
  1. 2011/11/24(木) 14:31:35|
  2. プログラミング
  3. | トラックバック:0
  4. | コメント:0

コメント


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://luvtome.blog5.fc2.com/tb.php/484-2d1b345a
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad