36 lines
1.2 KiB
Text
36 lines
1.2 KiB
Text
/* NetRexx */
|
|
options replace format comments java crossref symbols nobinary
|
|
|
|
numeric digits 20
|
|
runSample(arg)
|
|
return
|
|
|
|
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
-- @see http://www.geeksforgeeks.org/equilibrium-index-of-an-array/
|
|
method equilibriumIndex(sequence) private static
|
|
es = ''
|
|
loop ix = 1 to sequence.words()
|
|
sum = 0
|
|
loop jx = 1 to sequence.words()
|
|
if jx < ix then sum = sum + sequence.word(jx)
|
|
if jx > ix then sum = sum - sequence.word(jx)
|
|
end jx
|
|
if sum = 0 then es = es ix
|
|
end ix
|
|
return es
|
|
|
|
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
method runSample(arg) private static
|
|
-- Note: A Rexx object based list of "words" starts at index 1
|
|
sequences = [ -
|
|
'-7 1 5 2 -4 3 0', - -- 4 7
|
|
' 2 4 6' , - -- (no equilibrium point)
|
|
' 0 2 4 0 6 0' , - -- 4
|
|
' 2 9 2' , - -- 2
|
|
' 1 -1 1 -1 1 -1 1' - -- 1 2 3 4 5 6 7
|
|
]
|
|
loop sequence over sequences
|
|
say 'For sequence "'sequence.space(1, ',')'" the equilibrium indices are: \-'
|
|
say '"'equilibriumIndex(sequence).space(1, ',')'"'
|
|
end sequence
|
|
return
|