RosettaCodeData/Task/Equilibrium-index/M2000-Interpreter/equilibrium-index.m2000
2026-04-30 12:34:36 -04:00

23 lines
609 B
Text

Module Equilibrium_index{
Function equilibriumIndices(a as tuple) {
flush ' empty stack of values
sum=a#sum()
b=each(a)
double sumleft, sumright
while b
sumright=sum-sumleft-array(b)
if sumleft=sumright then
data b^ ' put index to end of stack (used as FIFO)
end if
sumleft+=array(b)
end while
=array([])
}
a=(-7, 1, 5, 2, -4, 3, 0)
b=equilibriumIndices(a)#str$()
Print "["+b+"]"
Print "["+equilibriumIndices((2, 4, 6))#str$()+"]"
Print "["+equilibriumIndices((2, 9, 2))#str$()+"]"
Print "["+equilibriumIndices((1, -1, 1, -1, 1, -1, 1))#str$()+"]"
}
Equilibrium_index