34 lines
923 B
Text
34 lines
923 B
Text
import ballerina/io;
|
|
|
|
function hailstone(int m) returns int[] {
|
|
int n = m;
|
|
int[] h = [n];
|
|
while n != 1 {
|
|
n = n % 2 == 0 ? n / 2 : 3 * n + 1;
|
|
h.push(n);
|
|
}
|
|
return h;
|
|
}
|
|
|
|
public function main() {
|
|
int[] h = hailstone(27);
|
|
int len = h.length();
|
|
io:println("For the Hailstone sequence starting with n = 27:");
|
|
io:println(" Number of elements = ", len);
|
|
io:println(" First four elements = ", h.slice(0, 4));
|
|
io:println(" Final four elements = ", h.slice(len - 4));
|
|
|
|
io:println("\nThe Hailstone sequence for n < 100,000 with the longest length is:");
|
|
int longest = 0;
|
|
int longlen = 0;
|
|
foreach int n in 1...99999 {
|
|
h = hailstone(n);
|
|
len = h.length();
|
|
if len > longlen {
|
|
longest = n;
|
|
longlen = len;
|
|
}
|
|
}
|
|
io:println(` Longest = ${longest}`);
|
|
io:println(` Length = ${longlen}`);
|
|
}
|