2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,2 +1,2 @@
def rFact
rFact = { (it > 1) ? it * rFact(it - 1) : 1 }
rFact = { (it > 1) ? it * rFact(it - 1) : 1 as BigInteger }

View file

@ -1 +1 @@
(0..6).each { println "${it}: ${rFact(it)}" }
def iFact = { (it > 1) ? (2..it).inject(1 as BigInteger) { i, j -> i*j } : 1 }

View file

@ -1 +1,17 @@
def iFact = { (it > 1) ? (2..it).inject(1) { i, j -> i*j } : 1 }
def time = { Closure c ->
def start = System.currentTimeMillis()
def result = c()
def elapsedMS = (System.currentTimeMillis() - start)/1000
printf '(%6.4fs elapsed)', elapsedMS
result
}
def dashes = '---------------------'
print " n! elapsed time "; (0..15).each { def length = Math.max(it - 3, 3); printf " %${length}d", it }; println()
print "--------- -----------------"; (0..15).each { def length = Math.max(it - 3, 3); print " ${dashes[0..<length]}" }; println()
[recursive:rFact, iterative:iFact].each { name, fact ->
printf "%9s ", name
def factList = time { (0..15).collect {fact(it)} }
factList.each { printf ' %3d', it }
println()
}