23 lines
661 B
Plaintext
23 lines
661 B
Plaintext
HOW TO RETURN hailstone n:
|
|
PUT {} IN seq
|
|
WHILE 1=1:
|
|
PUT n IN seq[#seq]
|
|
SELECT:
|
|
n=1: RETURN seq
|
|
n mod 2=0: PUT floor(n/2) IN n
|
|
n mod 2=1: PUT 3*n+1 IN n
|
|
RETURN seq
|
|
|
|
PUT hailstone 27 IN h27
|
|
WRITE "Length of Hailstone sequence for 27:", #h27/
|
|
WRITE "First 4 elements:", h27[0], h27[1], h27[2], h27[3]/
|
|
WRITE "Last 4 elements:", h27[#h27-4], h27[#h27-3], h27[#h27-2], h27[#h27-1]/
|
|
|
|
PUT 0, 0 IN longest, length
|
|
FOR n IN {1..100000}:
|
|
PUT hailstone n IN hn
|
|
IF #hn > length:
|
|
PUT n, #hn IN longest, length
|
|
|
|
WRITE longest, "has the longest hailstone sequence < 100,000, of length:", length/
|