You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
852 B
55 lines
852 B
# homework done by alansnape on Oct. 12th
|
|
# Ojyoosama kyoo mo miyabiyaka desu.
|
|
|
|
# Part 1
|
|
|
|
def sum arr
|
|
return arr.inject(0, :+)
|
|
end
|
|
|
|
def max_2_sum arr
|
|
return sum(arr.sort.reverse[0..1])
|
|
end
|
|
|
|
def sum_to_n? arr, n
|
|
ret = false
|
|
arr.each_with_index do |oi, i|
|
|
arr.each_with_index do |oj, j|
|
|
ret ||= (i != j && oi + oj == n)
|
|
end
|
|
end
|
|
return ret
|
|
end
|
|
|
|
# Part 2
|
|
|
|
def hello(name)
|
|
return 'Hello, ' + name
|
|
end
|
|
|
|
def starts_with_consonant? s
|
|
return (s[0] =~ /[[:alpha:]]/) && ! (s[0] =~ /[aeiouAEIOU]/)
|
|
end
|
|
|
|
def binary_multiple_of_4? s
|
|
return (s =~ /^[01]+$/) && (s =~ /100$/ || s == '0')
|
|
end
|
|
|
|
# Part 3
|
|
|
|
class BookInStock
|
|
attr_accessor :isbn, :price
|
|
|
|
def initialize _isbn, _p
|
|
if _isbn.empty? || _p <= 0 then
|
|
raise ArgumentError
|
|
end
|
|
self.isbn = _isbn
|
|
self.price = _p
|
|
end
|
|
|
|
def price_as_string
|
|
return format("$%.2f", self.price)
|
|
end
|
|
end
|