RubyでSelf Describing Numbersを解く -CodeEval
String#countを使って。
各桁の数字がその桁の出現回数を表すとき、自己表現数(self describing number)という。
RubyでHappy Numbersを解く -CodeEval
再帰を使って。
各桁の二乗を足し続けて1になればHappy。
RubyでRightmost Charを解く -CodeEval
String#rindexで。
文字列中の指定文字の位置(最右)。
RubyでSet Intersectionを解く -CodeEval
Array#&で。
左右の数字列の重複。
RubyでUnique Elementsを解く -CodeEval
Array#uniqで。
重複数字を除去。
RubyでFile Sizeを解く -CodeEval
File.sizeで。
ファイルサイズ。
RubyでOdd Numbersを解く -CodeEval
Enumerable#selectで。
1から99の中の奇数。
RubyでSum of Integers from Fileを解く -CodeEval
Enumerable#injectを使って。
各行の数字の合計。
RubyでMultiplication Tablesを解く -CodeEval
printfで揃える。
九九のテーブルを作る。
RubyでFibonacci Seriesを解く -CodeEval
メモ化を使って。
n番目のフィボナッチ数。
(追記:2012-2-2)
id:rochefortさんによるメモ化。
def fib(n)
@cache ||= []
@cache[n] ||= (n<2)? n : fib(n-2) + fib(n-1);
end
Fibonacci Series - うんたらかんたら日記
なるほどこちらのほうが見やすいです。
でこれにならって修正版。
@mem = { -2 => -1, -1 => 1 }
fib = ->n { @mem[n] ||= fib[n-1] + fib[n-2] }
RubyでSum of Digitsを解く -CodeEval
各桁の合計。
RubyでLowercaseを解く -CodeEval
String#downcaseで。
全部小文字化。
RubyでBit Positionsを解く -CodeEval
Integer#to_s(2)で。
1つ目の数字のビットにおける2つの位置の一致を見る。
RubyでMultiples of a Numberを解く -CodeEval
またまたEnumeratorを使って。
1つ目の数字より大きい2つ目の数字の最小の倍数。
RubyでReverse wordsを解く -CodeEval
ふつうにArray#reverseを使って。
単語の語順を入れ換える。
blog comments powered by