RosettaCodeData/Task/Juggler-sequence/V-(Vlang)/juggler-sequence.v
2026-04-30 12:34:36 -04:00

36 lines
780 B
V

import math
struct JugglerResult {
mut:
cnt i64
max i64
maxidx i64
}
fn juggler(pir i64) JugglerResult {
mut ir := pir
mut res := JugglerResult{
cnt: 0
max: ir
maxidx: 0
}
for ir != 1 {
if ir % 2 == 0 { ir = i64(math.floor(math.sqrt(f64(ir)))) }
else { ir = i64(math.floor(f64(ir) * math.sqrt(f64(ir)))) }
res.cnt += 1
if ir > res.max {
res.max = ir
res.maxidx = res.cnt
}
}
return res
}
fn main() {
println(" n l[n] h[n] i[n]")
println("-------------------------------------")
for nir := i64(20); nir <= i64(39); nir++ {
res := juggler(nir)
println("${nir:3} ${res.cnt:3} ${res.max:16} ${res.maxidx:5}")
}
}