Hailstone sequence: Difference between revisions

Content added Content deleted
(→‎{{header|Picat}}: Added subsection. Added {{out}})
No edit summary
Line 4,555: Line 4,555:
reduce max 0 (map hailstone_len (map (1+) (iota (n-1)))))
reduce max 0 (map hailstone_len (map (1+) (iota (n-1)))))
</lang>
</lang>

=={{header|FutureBasic}}==
<lang futurebasic>
local fn Hailstone( n as NSInteger ) as NSInteger
'~'1
NSInteger count = 1

while ( n != 1 )
if ( n and 1 ) == 1
n = n * 3 + 1
count++
end if
n = n / 2
count++
wend
end fn = count


local fn PrintHailstone( n as NSInteger )
'~'1
NSInteger count = 1, col = 1

print "Sequence for number "; n; ":" : print
print using "########"; n;

col = 2
while ( n != 1 )
if ( n and 1 ) == 1
n = n * 3 + 1
count++
else
n = n / 2
count++
end if
print using "########"; n;
if col == 10 then print : col = 1 else col++
wend

print : print
print "Sequence length = "; count
end fn

window 1, @"Hailstone Sequence", ( 0, 0, 620, 400 )

NSInteger n, seq_num, x, max_x, max_seq

seq_num = 27

print
fn PrintHailstone( seq_num )
print

for x = 1 to 100000
n = fn Hailstone( x )
if n > max_seq
max_x = x
max_seq = n
end if
next

print "The longest sequence is for "; max_x; ", it has a sequence length of "; max_seq; "."

HandleEvents
</lang>

{{output}}
<pre>
Sequence for number 27:

27 82 41 124 62 31 94 47 142 71
214 107 322 161 484 242 121 364 182 91
274 137 412 206 103 310 155 466 233 700
350 175 526 263 790 395 1186 593 1780 890
445 1336 668 334 167 502 251 754 377 1132
566 283 850 425 1276 638 319 958 479 1438
719 2158 1079 3238 1619 4858 2429 7288 3644 1822
911 2734 1367 4102 2051 6154 3077 9232 4616 2308
1154 577 1732 866 433 1300 650 325 976 488
244 122 61 184 92 46 23 70 35 106
53 160 80 40 20 10 5 16 8 4
2 1

Sequence length = 112

The longest sequence is for 77031, it has a sequence length of 351.
</pre>



=={{header|Fōrmulæ}}==
=={{header|Fōrmulæ}}==