LoginSignup
0
0

More than 5 years have passed since last update.

頭の体操的な問題1_fizzbuzz

Last updated at Posted at 2014-02-23

2014.2.23の第13回ゆるびぃ会で出題した問題の記録です。

問1. FizzBuzz問題を解く。

  • とりあえず1以上の整数nを引数にとるメソッドを実装する感じで。
  • 制限時間は5分。
  • 言語はなんでもOK。

問2. FizzBuzz問題を%演算子を使わずに解く。

  • だいたい問1と同じです。
  • 制限時間は10分。

ちなみに

ちなみに私は下記のような感じに書きました。

fizzbuzz.rb
# 問1
def fizzbuzz(x)
  res = ""
  res << "Fizz" if x % 3 == 0
  res << "Buzz" if x % 5 == 0
  res.empty? ? x : res
end

# 問2
# 3,5で割り切れるメソッドを作りました。後は問1と同じ。
def divided_by_three?(x)
  case sum_each_place(x)
  when 3, 6, 9
    true
  else
    false
  end
end

def divided_by_five?(x)
  ary = x.to_s.split(//).map(&:to_i)
  case ary.last
  when 0, 5
    true
  else
    false
  end
end

def sum_each_place(x)
  ary = x.to_s.split(//).map(&:to_i)
  return ary.first if ary.size == 1
  sum_each_place(ary.inject(:+))
end

しかしよくよく考えたら「7で割り切れる云々」とかにルールが変わったらその都度メソッドを考えないといけないのであんまりイケてねえなと思った。

「もっと良い解き方がある!」とかリベンジしたいという方はコメントお願いします。
コメントでもコード書けるらしいので。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0