--- a/progs/collatz_.scala Tue Nov 08 10:30:42 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Part 1
-
-
-//(1)
-def collatz(n: Long): List[Long] =
- if (n == 1) List(1) else
- if (n % 2 == 0) (n::collatz(n / 2)) else
- (n::collatz(3 * n + 1))
-
-// an alternative that calculates the steps directly
-def collatz1(n: Long): Int =
- if (n == 1) 1 else
- if (n % 2 == 0) (1 + collatz1(n / 2)) else
- (1 + collatz1(3 * n + 1))
-
-
-//(2)
-def collatz_max(bnd: Int): Int = {
- (for (i <- 1 to bnd) yield collatz(i).length).max
-}
-
-
-val bnds = List(10, 100, 1000, 10000, 100000, 1000000, 10000000)
-
-for (bnd <- bnds) {
- val max = collatz_max(bnd)
- println(s"In the range of 1 - ${bnd} the maximum steps are ${max}")
-}
-