Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Equilibrium-index/REXX/equilibrium-index-1.rexx
Normal file
17
Task/Equilibrium-index/REXX/equilibrium-index-1.rexx
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
/*REXX program calculates and displays the equilibrium index for a numeric array (list).*/
|
||||
parse arg x /*obtain the optional arguments from CL*/
|
||||
if x='' then x= copies(" 7 -7", 50) 7 /*Not specified? Then use the default.*/
|
||||
say ' array list: ' space(x) /*echo the array list to the terminal. */
|
||||
#= words(x) /*the number of elements in the X list.*/
|
||||
do j=0 for #; @.j= word(x, j+1) /*zero─start is for zero─based array. */
|
||||
end /*j*/ /* [↑] assign @.0 @.1 @.3 ··· */
|
||||
say /* ··· and also display a blank line. */
|
||||
answer= equilibriumIDX(); w= words(answer) /*calculate the equilibrium index. */
|
||||
say 'equilibrium' word("(none) index: indices:", 1 + (w>0) + (w>1)) answer
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
equilibriumIDX: $=; do i=0 for #; sum= 0
|
||||
do k=0 for #; sum= sum + @.k * sign(k-i); end /*k*/
|
||||
if sum==0 then $= $ i
|
||||
end /*i*/ /* [↑] Zero? Found an equilibrium index*/
|
||||
return $ /*return equilibrium list (may be null)*/
|
||||
33
Task/Equilibrium-index/REXX/equilibrium-index-2.rexx
Normal file
33
Task/Equilibrium-index/REXX/equilibrium-index-2.rexx
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/* REXX ---------------------------------------------------------------
|
||||
* 30.06.2014 Walter Pachl
|
||||
*--------------------------------------------------------------------*/
|
||||
parse arg l
|
||||
say ' array list:' strip(l)
|
||||
x.=0
|
||||
Do i=1 To words(l)
|
||||
x.i=word(l,i)
|
||||
End
|
||||
n=i-1
|
||||
ans=strip(equilibriumIndices())
|
||||
n=words(ans)
|
||||
Select
|
||||
When n=0 Then Say 'There''s no equilibrium index'
|
||||
When n=1 Then Say 'equilibrium index :' ans
|
||||
Otherwise Say 'equilibrium indices:' ans
|
||||
End
|
||||
Say '---'
|
||||
exit
|
||||
equilibriumIndices: procedure expose x. n
|
||||
sum.=0
|
||||
sum=0
|
||||
eil=''
|
||||
Do i=1 To n
|
||||
sum=sum+x.i
|
||||
sum.i=sum
|
||||
End
|
||||
Do i=1 To n
|
||||
im1=i-1
|
||||
If sum.im1=(sum.n-x.i)/2 Then
|
||||
eil=eil im1
|
||||
End
|
||||
Return eil
|
||||
Loading…
Add table
Add a link
Reference in a new issue