Jump to content

Equilibrium index: Difference between revisions

Added Wren
(Added Wren)
Line 2,610:
{{out}}
<pre>Indices: 3, 6,</pre>
 
=={{header|Wren}}==
<lang ecmascript>var equilibrium = Fn.new { |a|
var len = a.count
var equi = []
if (len == 0) return equi // sequence has no indices at all
var rsum = a.reduce { |acc, x| acc + x }
var lsum = 0
for (i in 0...len) {
rsum = rsum - a[i]
if (rsum == lsum) equi.add(i)
lsum = lsum + a[i]
}
return equi
}
 
var rset = Fn.new { |m, n|
var s = "%(n)"
var c = s.count
return (m > c) ? " " * (m - c) + s : s
}
 
var tests = [
[-7, 1, 5, 2, -4, 3, 0],
[2, 4, 6],
[2, 9, 2],
[1, -1, 1, -1, 1, -1, 1],
[1],
[]
]
 
System.print("The equilibrium indices for the following sequences are:\n")
for (test in tests) {
System.print("%(rset.call(24, test)) -> %(equilibrium.call(test))")
}</lang>
 
{{out}}
<pre>
The equilibrium indices for the following sequences are:
 
[-7, 1, 5, 2, -4, 3, 0] -> [3, 6]
[2, 4, 6] -> []
[2, 9, 2] -> [1]
[1, -1, 1, -1, 1, -1, 1] -> [0, 1, 2, 3, 4, 5, 6]
[1] -> [0]
[] -> []
</pre>
 
=={{header|XPL0}}==
9,485

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.