16 lines
409 B
Ada
16 lines
409 B
Ada
package body Hailstones is
|
|
function Create_Sequence (N : Positive) return Integer_Sequence is
|
|
begin
|
|
if N = 1 then
|
|
-- terminate
|
|
return (1 => N);
|
|
elsif N mod 2 = 0 then
|
|
-- even
|
|
return (1 => N) & Create_Sequence (N / 2);
|
|
else
|
|
-- odd
|
|
return (1 => N) & Create_Sequence (3 * N + 1);
|
|
end if;
|
|
end Create_Sequence;
|
|
end Hailstones;
|