Sha256: 277d95b69bcdd1329a7a19ce89792b41b7cbf11f62c290ab88fbfa5c04dace42
Contents?: true
Size: 844 Bytes
Versions: 1
Compression:
Stored size: 844 Bytes
Contents
class Integer # Calculate the factorial of an integer. # # 2.factorial #=> 2 # 3.factorial #=> 6 # 3.factorial #=> 24 # #-- # TODO Improve speed! Don't use inject. #++ def factorial return 1 if self == 0 #self == 0 ? 1 : ( self * (self-1).factorial ) f = (1..self.abs).inject { |state, item| state * item } return self < 0 ? -f : f end alias_method( :fact, :factorial ) end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCInteger < Test::Unit::TestCase def test_factorial assert_equal( 1, 0.factorial ) assert_equal( 1, 1.factorial ) assert_equal( 2, 2.factorial ) assert_equal( 6, 3.factorial ) assert_equal( 24, 4.factorial ) end end =end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
facets-0.9.0 | lib/nano/integer/factorial.rb |