25 lines
593 B
Text
25 lines
593 B
Text
|
|
link printf
|
||
|
|
|
||
|
|
procedure main()
|
||
|
|
every put(environment := [], hailenv(1 to 12,0)) # setup environments
|
||
|
|
printf("Sequences:\n")
|
||
|
|
while (e := !environment).sequence > 1 do {
|
||
|
|
every hailstep(!environment)
|
||
|
|
printf("\n")
|
||
|
|
}
|
||
|
|
printf("\nCounts:\n")
|
||
|
|
every printf("%4d ",(!environment).count)
|
||
|
|
printf("\n")
|
||
|
|
end
|
||
|
|
|
||
|
|
record hailenv(sequence,count)
|
||
|
|
|
||
|
|
procedure hailstep(env)
|
||
|
|
printf("%4d ",env.sequence)
|
||
|
|
if env.sequence ~= 1 then {
|
||
|
|
env.count +:= 1
|
||
|
|
if env.sequence % 2 = 0 then env.sequence /:= 2
|
||
|
|
else env.sequence := 3 * env.sequence + 1
|
||
|
|
}
|
||
|
|
end
|