「剰余演算子」を含む日記 RSS

はてなキーワード: 剰余演算子とは

2007-05-10

偽FizzBuzz問題

http://anond.hatelabo.jp/20070508170219

「%(剰余演算子)使用禁止」みたいな話があったので、逆に無駄馬鹿っぽいプログラムが出てくると、どれくらい間抜けな「剰余を求める関数」になるか見てみたい。

……いざ間抜けに作ろうとすると、それはそれで難しい。

#!ruby -Ks

# 3で割り切れるなら0を返す
# 割り切れないときは各桁の数を足した数字が返ってくるけど、再帰用だから気にしないでね><
def mod3_equal_zero(i)
  s = i.to_s
  num = 0
  s.split('').each {|c|
    num += c.to_i
  }
  if (num > 9) then
    num = mod3_equal_zero(num)
  end
  num=0 if num == 3 || num == 6 || num == 9
  num
end

# 5で割り切れるなら0を返す
def mod5_equal_zero(i)
  s =i.to_s
  i=0 if s[-1,1] == "0"
  i=0 if s[-1,1] == "5"
  i
end

# メイン
(1..100).each{|i|
  str =""
  str += "Fizz" if mod3_equal_zero(i) == 0
  str += "Buzz" if mod5_equal_zero(i) == 0
  str = i.to_s if (str == "") 
  print str,"\n"
}

 
ログイン ユーザー登録
ようこそ ゲスト さん