Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
44
Task/Hailstone-sequence/NetRexx/hailstone-sequence.netrexx
Normal file
44
Task/Hailstone-sequence/NetRexx/hailstone-sequence.netrexx
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/* NetRexx */
|
||||
|
||||
options replace format comments java crossref savelog symbols binary
|
||||
|
||||
do
|
||||
start = 27
|
||||
hs = hailstone(start)
|
||||
hsCount = hs.words
|
||||
say 'The number' start 'has a hailstone sequence comprising' hsCount 'elements'
|
||||
say ' its first four elements are:' hs.subword(1, 4)
|
||||
say ' and last four elements are:' hs.subword(hsCount - 3)
|
||||
|
||||
hsMax = 0
|
||||
hsCountMax = 0
|
||||
llimit = 100000
|
||||
loop x_ = 1 to llimit - 1
|
||||
hs = hailstone(x_)
|
||||
hsCount = hs.words
|
||||
if hsCount > hsCountMax then do
|
||||
hsMax = x_
|
||||
hsCountMax = hsCount
|
||||
end
|
||||
end x_
|
||||
|
||||
say 'The number' hsMax 'has the longest hailstone sequence in the range 1 to' llimit - 1 'with a sequence length of' hsCountMax
|
||||
catch ex = Exception
|
||||
ex.printStackTrace
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
method hailstone(hn = long) public static returns Rexx signals IllegalArgumentException
|
||||
|
||||
hs = Rexx('')
|
||||
if hn <= 0 then signal IllegalArgumentException('Invalid start point. Must be a positive integer greater than 0')
|
||||
|
||||
loop label n_ while hn > 1
|
||||
hs = hs' 'hn
|
||||
if hn // 2 \= 0 then hn = hn * 3 + 1
|
||||
else hn = hn % 2
|
||||
end n_
|
||||
hs = hs' 'hn
|
||||
|
||||
return hs.strip
|
||||
Loading…
Add table
Add a link
Reference in a new issue