Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
21
Task/Equilibrium-index/ERRE/equilibrium-index.erre
Normal file
21
Task/Equilibrium-index/ERRE/equilibrium-index.erre
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
PROGRAM EQUILIBRIUM
|
||||
|
||||
DIM LISTA[6]
|
||||
|
||||
PROCEDURE EQ(LISTA[]->RES$)
|
||||
LOCAL I%,R,S,E$
|
||||
FOR I%=0 TO UBOUND(LISTA,1) DO
|
||||
S+=LISTA[I%]
|
||||
END FOR
|
||||
FOR I%=0 TO UBOUND(LISTA,1) DO
|
||||
IF R=S-R-LISTA[I%] THEN E$+=STR$(I%)+"," END IF
|
||||
R+=LISTA[I%]
|
||||
END FOR
|
||||
RES$=LEFT$(E$,LEN(E$)-1)
|
||||
END PROCEDURE
|
||||
|
||||
BEGIN
|
||||
LISTA[]=(-7,1,5,2,-4,3,0)
|
||||
EQ(LISTA[]->RES$)
|
||||
PRINT("Equilibrium indices are";RES$)
|
||||
END PROGRAM
|
||||
36
Task/Equilibrium-index/FreeBASIC/equilibrium-index.freebasic
Normal file
36
Task/Equilibrium-index/FreeBASIC/equilibrium-index.freebasic
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
' FB 1.05.0 Win64
|
||||
|
||||
Sub equilibriumIndices (a() As Integer, b() As Integer)
|
||||
If UBound(a) = -1 Then Return '' empty array
|
||||
|
||||
Dim sum As Integer = 0
|
||||
Dim count As Integer = 0
|
||||
For i As Integer = LBound(a) To UBound(a) : sum += a(i) : Next
|
||||
Dim sumLeft As Integer = 0, sumRight As Integer = 0
|
||||
|
||||
For i As Integer = LBound(a) To UBound(a)
|
||||
sumRight = sum - sumLeft - a(i)
|
||||
If sumLeft = sumRight Then
|
||||
Redim Preserve b(0 To Count)
|
||||
b(count) = i
|
||||
count += 1
|
||||
End If
|
||||
sumLeft += a(i)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Dim a(0 To 6) As Integer = { -7, 1, 5, 2, -4, 3, 0 }
|
||||
Dim b() As Integer
|
||||
equilibriumIndices a(), b()
|
||||
If UBound(b) = -1 Then
|
||||
Print "There are no equilibrium indices"
|
||||
ElseIf UBound(b) = LBound(b) Then
|
||||
Print "The only equilibrium index is : "; b(LBound(b))
|
||||
Else
|
||||
Print "The equilibrium indices are : "
|
||||
For i As Integer = LBound(b) To UBound(b) : Print b(i); " "; : Next
|
||||
End If
|
||||
|
||||
Print
|
||||
Print "Press any key to quit"
|
||||
Sleep
|
||||
20
Task/Equilibrium-index/Nim/equilibrium-index.nim
Normal file
20
Task/Equilibrium-index/Nim/equilibrium-index.nim
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import math, sequtils
|
||||
|
||||
iterator eqindex(data) =
|
||||
var suml, ddelayed = 0
|
||||
var sumr = sum(data)
|
||||
for i,d in data:
|
||||
suml += ddelayed
|
||||
sumr -= d
|
||||
ddelayed = d
|
||||
if suml == sumr:
|
||||
yield i
|
||||
|
||||
const d = @[@[-7, 1, 5, 2, -4, 3, 0],
|
||||
@[2, 4, 6],
|
||||
@[2, 9, 2],
|
||||
@[1, -1, 1, -1, 1, -1, 1]]
|
||||
|
||||
for data in d:
|
||||
echo "d = ", data
|
||||
echo "eqIndex(d) -> ", toSeq(eqindex(data))
|
||||
9
Task/Equilibrium-index/Oforth/equilibrium-index.oforth
Normal file
9
Task/Equilibrium-index/Oforth/equilibrium-index.oforth
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
: equilibrium(l)
|
||||
| ls rs i e |
|
||||
0 ->ls
|
||||
l sum ->rs
|
||||
ListBuffer new l size loop: i [
|
||||
l at(i) ->e
|
||||
rs e - dup ->rs ls == ifTrue: [ i over add ]
|
||||
ls e + ->ls
|
||||
] ;
|
||||
15
Task/Equilibrium-index/Phix/equilibrium-index.phix
Normal file
15
Task/Equilibrium-index/Phix/equilibrium-index.phix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
function equilibrium(sequence s)
|
||||
atom lower_sum = 0
|
||||
atom higher_sum = sum(s)
|
||||
sequence res = {}
|
||||
for i=1 to length(s) do
|
||||
higher_sum -= s[i]
|
||||
if lower_sum=higher_sum then
|
||||
res &= i
|
||||
end if
|
||||
lower_sum += s[i]
|
||||
end for
|
||||
return res
|
||||
end function
|
||||
|
||||
? equilibrium({-7,1,5,2,-4,3,0})
|
||||
14
Task/Equilibrium-index/Ring/equilibrium-index.ring
Normal file
14
Task/Equilibrium-index/Ring/equilibrium-index.ring
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
list = [-7, 1, 5, 2, -4, 3, 0]
|
||||
see "equilibrium indices are : " + equilibrium(list) + nl
|
||||
|
||||
func equilibrium l
|
||||
r = 0 s = 0 e = ""
|
||||
for n = 1 to len(l)
|
||||
s += l[n]
|
||||
next
|
||||
for i = 1 to len(l)
|
||||
if r = s - r - l[i] e += string(i-1) + "," ok
|
||||
r += l[i]
|
||||
next
|
||||
e = left(e,len(e)-1)
|
||||
return e
|
||||
8
Task/Equilibrium-index/Sidef/equilibrium-index-1.sidef
Normal file
8
Task/Equilibrium-index/Sidef/equilibrium-index-1.sidef
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
func eq_index(nums) {
|
||||
var (i, sum, sums) = (0, 0, Hash.new);
|
||||
nums.each { |n|
|
||||
sums{2*sum + n} := [] -> append(i++);
|
||||
sum += n;
|
||||
}
|
||||
sums{sum} \\ [];
|
||||
}
|
||||
10
Task/Equilibrium-index/Sidef/equilibrium-index-2.sidef
Normal file
10
Task/Equilibrium-index/Sidef/equilibrium-index-2.sidef
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
var indices = [
|
||||
[-7, 1, 5, 2,-4, 3, 0],
|
||||
[2, 4, 6],
|
||||
[2, 9, 2],
|
||||
[1,-1, 1,-1, 1,-1, 1],
|
||||
]
|
||||
|
||||
for x in indices {
|
||||
say ("%s => %s" % @|[x, eq_index(x)].map{.dump});
|
||||
}
|
||||
13
Task/Equilibrium-index/jq/equilibrium-index-1.jq
Normal file
13
Task/Equilibrium-index/jq/equilibrium-index-1.jq
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# The index origin is 0 in jq.
|
||||
def equilibrium_indices:
|
||||
def indices(a; mx):
|
||||
def report: # [i, headsum, tailsum]
|
||||
.[0] as $i
|
||||
| if $i == mx then empty # all done
|
||||
else .[1] as $h
|
||||
| (.[2] - a[$i]) as $t
|
||||
| (if $h == $t then $i else empty end),
|
||||
( [ $i + 1, $h + a[$i], $t ] | report )
|
||||
end;
|
||||
[0, 0, (a|add)] | report;
|
||||
. as $in | indices($in; $in|length);
|
||||
1
Task/Equilibrium-index/jq/equilibrium-index-2.jq
Normal file
1
Task/Equilibrium-index/jq/equilibrium-index-2.jq
Normal file
|
|
@ -0,0 +1 @@
|
|||
[-7, 1, 5, 2, -4, 3, 0] | equilibrium_indices
|
||||
6
Task/Equilibrium-index/jq/equilibrium-index-3.jq
Normal file
6
Task/Equilibrium-index/jq/equilibrium-index-3.jq
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
def count(g): reduce g as $i (0; .+1);
|
||||
|
||||
# Create an array of length n with "init" elements:
|
||||
def array(n;init): reduce range(0;n) as $i ([]; . + [0]);
|
||||
|
||||
count( array(1e4;0) | equilibrium_indices )
|
||||
Loading…
Add table
Add a link
Reference in a new issue