diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-12-13 03:47:07 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-12-13 03:47:07 +0000 |
| commit | 6deea165afb75860bfdf50e9495794271b77a6b5 (patch) | |
| tree | 258b60f16d7918544dd2e2679f1d868ec61c1dd9 /challenge-089 | |
| parent | bc0c0e1085d43f0b1a7fcde30b908051c76cef47 (diff) | |
| download | perlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.tar.gz perlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.tar.bz2 perlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.zip | |
- Added Scala solutions to week 89 by Laurent Rosenfeld.
Diffstat (limited to 'challenge-089')
| -rw-r--r-- | challenge-089/laurent-rosenfeld/scala/ch-1.scala | 21 | ||||
| -rw-r--r-- | challenge-089/laurent-rosenfeld/scala/ch-2.scala | 38 |
2 files changed, 59 insertions, 0 deletions
diff --git a/challenge-089/laurent-rosenfeld/scala/ch-1.scala b/challenge-089/laurent-rosenfeld/scala/ch-1.scala new file mode 100644 index 0000000000..500af82aac --- /dev/null +++ b/challenge-089/laurent-rosenfeld/scala/ch-1.scala @@ -0,0 +1,21 @@ +object Main { + def main(args: Array[String]): Unit = { + val in: Int = if (args.size == 1) args(0).toInt else 10 + var sum = 0 + for (m <- 1 to in) { + for (n <- m + 1 to in) { + sum += gcd(m, n) + } + } + println(s"Sum of GCD to $in is $sum") + } + def gcd(a: Int, b: Int): Int = { + var (i, j) = (a, b) + while (j > 0) { + var t = i + i = j + j = t % j + } + return i + } +} diff --git a/challenge-089/laurent-rosenfeld/scala/ch-2.scala b/challenge-089/laurent-rosenfeld/scala/ch-2.scala new file mode 100644 index 0000000000..a410591dba --- /dev/null +++ b/challenge-089/laurent-rosenfeld/scala/ch-2.scala @@ -0,0 +1,38 @@ +import Array._ +object Main { + def main(args: Array[String]): Unit = { + var mat = range(1, 10) + var in = Array.empty[Int] + permute(in, mat) + } + def print_matrix(a: Array[Int]): Unit = { + println(s"[ ${a(0)} ${a(1)} ${a(2)} ]") + println(s"[ ${a(3)} ${a(4)} ${a(5)} ]") + println(s"[ ${a(6)} ${a(7)} ${a(8)} ]") + println(" ") + } + def permute(in: Array[Int], left: Array[Int]): Unit = { + val sum = 15 + if (left.size == 0) { + if ( + in.slice(0, 3).sum != sum || + in.slice(3, 6).sum != sum || + in.slice(6, 9).sum != sum || + in(0) + in(3) + in(6) != sum || + in(1) + in(4) + in(7) != sum || + in(2) + in(5) + in(8) != sum || + in(0) + in(4) + in(8) != sum || + in(2) + in(4) + in(6) != sum + ) { + return + } + print_matrix(in) + return + } + for (candidate <- left) { + val values: Array[Int] = in.appended(candidate) + val newleft: Array[Int] = left.filter(_ != candidate) + permute(values, newleft) + } + } +} |
