Hailstone sequence: Difference between revisions

no edit summary
No edit summary
Line 9,890:
Max elements in sequence for number below 100k: 77031 with 351 elements.
</pre>
 
=={{header|Vlang}}==
{{trans|go}}
<lang vlang>// 1st arg is the number to generate the sequence for.
// 2nd arg is a slice to recycle, to reduce garbage.
fn hs(nn int, recycle []int) []int {
mut n := nn
mut s := recycle[..0]
s << n
for n > 1 {
if n&1 == 0 {
n /= 2
} else {
n = 3*n + 1
}
s << n
}
return s
}
fn main() {
mut seq := hs(27, [])
println("hs(27): $seq.len elements: [${seq[0]} ${seq[1]} ${seq[2]} ${seq[3]} ... ${seq[seq.len-4]} ${seq[seq.len-3]} ${seq[seq.len-2]} ${seq[seq.len-1]}]")
mut max_n, mut max_len := 0,0
for n in 1..100000 {
seq = hs(n, seq)
if seq.len > max_len {
max_n = n
max_len = seq.len
}
}
println("hs($max_n): $max_len elements")
}</lang>
{{out}}
<pre>hs(27): 112 elements: [27 82 41 124 ... 8 4 2 1]
hs(77031): 351 elements</pre>
 
=={{header|Wren}}==
338

edits