Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
58
Task/Hailstone-sequence/Seed7/hailstone-sequence.seed7
Normal file
58
Task/Hailstone-sequence/Seed7/hailstone-sequence.seed7
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const func array integer: hailstone (in var integer: n) is func
|
||||
result
|
||||
var array integer: hSequence is 0 times 0;
|
||||
begin
|
||||
while n <> 1 do
|
||||
hSequence &:= n;
|
||||
if odd(n) then
|
||||
n := 3 * n + 1;
|
||||
else
|
||||
n := n div 2;
|
||||
end if;
|
||||
end while;
|
||||
hSequence &:= n;
|
||||
end func;
|
||||
|
||||
const func integer: hailstoneSequenceLength (in var integer: n) is func
|
||||
result
|
||||
var integer: sequenceLength is 1;
|
||||
begin
|
||||
while n <> 1 do
|
||||
incr(sequenceLength);
|
||||
if odd(n) then
|
||||
n := 3 * n + 1;
|
||||
else
|
||||
n := n div 2;
|
||||
end if;
|
||||
end while;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var integer: number is 0;
|
||||
var integer: length is 0;
|
||||
var integer: maxLength is 0;
|
||||
var integer: numberOfMaxLength is 0;
|
||||
var array integer: h27 is 0 times 0;
|
||||
begin
|
||||
for number range 1 to 99999 do
|
||||
length := hailstoneSequenceLength(number);
|
||||
if length > maxLength then
|
||||
maxLength := length;
|
||||
numberOfMaxLength := number;
|
||||
end if;
|
||||
end for;
|
||||
h27 := hailstone(27);
|
||||
writeln("hailstone(27):");
|
||||
for number range 1 to 4 do
|
||||
write(h27[number] <& ", ");
|
||||
end for;
|
||||
write("....");
|
||||
for number range length(h27) -3 to length(h27) do
|
||||
write(", " <& h27[number]);
|
||||
end for;
|
||||
writeln(" length=" <& length(h27));
|
||||
writeln("Maximum length " <& maxLength <& " at number=" <& numberOfMaxLength);
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue