Rosetta Code
Hailstone sequence
Build a hailstone sequence and report its length.
Source
rosettacode/popular/hailstone_sequence.vibe
# title: Hailstone sequence
# source: https://rosettacode.org/wiki/Hailstone_sequence
# category: Rosetta Code
# difficulty: Intro
# summary: Build a hailstone sequence and report its length.
# tags: popular, math, loops, sequences
def hailstone(value)
sequence = []
current = value
while true
sequence = sequence.push(current)
if current == 1
return sequence
elsif current.even?
current = current / 2
else
current = (current * 3) + 1
end
end
end
def run
sequence = hailstone(27)
{
length: sequence.size,
first_ten: sequence.first(10),
last_ten: sequence.last(10)
}
end
Output
Press run to execute run from this example.