Skip to content

Commit

Permalink
Added array extensions to make problem 1 more readable.
Browse files Browse the repository at this point in the history
  • Loading branch information
John Dzak committed Nov 10, 2008
1 parent d907dad commit aa06098
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 4 deletions.
9 changes: 9 additions & 0 deletions project_1/array.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class Array
def unique
self & self
end

def sum
self.inject{|sum, num| sum + num}
end
end
10 changes: 10 additions & 0 deletions project_1/array_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
require 'array'

describe Array do
it "should return only unique items" do
[1,3,3,4,4].unique.should == [1,3,4]
end
it "should return the sum of the array" do
[1,3,9].sum.should == 13
end
end
2 changes: 1 addition & 1 deletion project_1/integer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
multiples = 3.multiples(1..9)
multiples.should == [3,6,9]
end
end
end
10 changes: 7 additions & 3 deletions project_1/problem1.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
require 'integer'
require 'array'

multiples_of_3 = 3.multiples(1..999)
multiples_of_5 = 5.multiples(1..999)
multiples_of_3.each { |num| multiples_of_3.delete(num) if multiples_of_5.include?(num) }

sum = (multiples_of_3 + multiples_of_5).inject {|sum, multiple| sum + multiple }
puts sum
multiples = multiples_of_3 + multiples_of_5
unique_multiples = multiples.unique

sum = unique_multiples.sum

puts "The answer is #{sum}"

0 comments on commit aa06098

Please sign in to comment.