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æ}}== |