21 lines
333 B
Ruby
21 lines
333 B
Ruby
class RocketEquation
|
|
attr_reader :mass
|
|
def initialize(mass)
|
|
@mass = mass
|
|
end
|
|
|
|
def self.for(line)
|
|
new line.to_i
|
|
end
|
|
|
|
def fuel_required
|
|
[(mass / 3) - 2, 0].max
|
|
end
|
|
|
|
def more_fuel_required
|
|
return 0 unless mass.positive?
|
|
|
|
fuel_required + RocketEquation.new(fuel_required).more_fuel_required
|
|
end
|
|
end
|