24 lines
637 B
JavaScript
24 lines
637 B
JavaScript
function hailstone (n) {
|
|
var seq = [n];
|
|
while (n > 1) {
|
|
n = n % 2 ? 3 * n + 1 : n / 2;
|
|
seq.push(n);
|
|
}
|
|
return seq;
|
|
}
|
|
|
|
// task 2: verify the sequence for n = 27
|
|
var h = hailstone(27), hLen = h.length;
|
|
print("sequence 27 is (" + h.slice(0, 4).join(", ") + " ... "
|
|
+ h.slice(hLen - 4, hLen).join(", ") + "). length: " + hLen);
|
|
|
|
// task 3: find the longest sequence for n < 100000
|
|
for (var n, max = 0, i = 100000; --i;) {
|
|
var seq = hailstone(i), sLen = seq.length;
|
|
if (sLen > max) {
|
|
n = i;
|
|
max = sLen;
|
|
}
|
|
}
|
|
print("longest sequence: " + max + " numbers for starting point " + n);
|