aboutsummaryrefslogtreecommitdiff
path: root/challenge-182
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-09-18 17:38:45 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-09-18 17:38:45 +0100
commit5474d4419dd2cff9ef7a5c72495c95b1c2da5f26 (patch)
tree3e6be615e035c084834549d2e80c840e827c8877 /challenge-182
parent2ed83380a42ad68882c9d21b7dd520f51fd0e888 (diff)
downloadperlweeklychallenge-club-5474d4419dd2cff9ef7a5c72495c95b1c2da5f26.tar.gz
perlweeklychallenge-club-5474d4419dd2cff9ef7a5c72495c95b1c2da5f26.tar.bz2
perlweeklychallenge-club-5474d4419dd2cff9ef7a5c72495c95b1c2da5f26.zip
- Added guest contributions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-182')
-rw-r--r--challenge-182/laurent-rosenfeld/awk/ch-1.awk18
-rw-r--r--challenge-182/laurent-rosenfeld/javascript/ch-1.js13
-rw-r--r--challenge-182/laurent-rosenfeld/julia/ch-1.jl11
-rw-r--r--challenge-182/laurent-rosenfeld/python/ch-1.py8
-rw-r--r--challenge-182/laurent-rosenfeld/ring/ch-1.ring14
-rw-r--r--challenge-182/laurent-rosenfeld/ruby/ch-1.rb11
-rw-r--r--challenge-182/laurent-rosenfeld/scala/ch-1.scala16
7 files changed, 91 insertions, 0 deletions
diff --git a/challenge-182/laurent-rosenfeld/awk/ch-1.awk b/challenge-182/laurent-rosenfeld/awk/ch-1.awk
new file mode 100644
index 0000000000..5e6c1ad5e6
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/awk/ch-1.awk
@@ -0,0 +1,18 @@
+# run for example as:
+# echo '5 2 9 1 7 6
+# 4 2 3 1 5 0' | awk -f ./max-index.awk
+
+function find_max() {
+ max_i = 0
+ max_n = $1
+ for (i = 2; i < NF; i++) {
+ if ($i > max_n) {
+ max_i = i
+ max_n = $i
+ }
+ }
+ printf("Max index for %s: %d => %d\n", $0, max_i - 1, max_n)
+}
+{
+ find_max()
+}
diff --git a/challenge-182/laurent-rosenfeld/javascript/ch-1.js b/challenge-182/laurent-rosenfeld/javascript/ch-1.js
new file mode 100644
index 0000000000..4131fca5bb
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/javascript/ch-1.js
@@ -0,0 +1,13 @@
+let tests = [ [5, 2, 9, 1, 7, 6], [4, 2, 3, 1, 5, 0] ]
+for (let j = 0; j < tests.length; j++) {
+ let test = tests[j]
+ let max_i = 0
+ let max_n = test[0]
+ for (let i = 1; i <= test.length; i++) {
+ if (test[i] > max_n) {
+ max_n = test[i]
+ max_i = i
+ }
+ }
+ console.log("Max index for " + test + ": " + max_i + " => " + max_n)
+}
diff --git a/challenge-182/laurent-rosenfeld/julia/ch-1.jl b/challenge-182/laurent-rosenfeld/julia/ch-1.jl
new file mode 100644
index 0000000000..c8cd868c79
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/julia/ch-1.jl
@@ -0,0 +1,11 @@
+for test in [[5, 2, 9, 1, 7, 6], [4, 2, 3, 1, 5, 0]]
+ max_i = 1
+ max_n = test[1]
+ for i in 2:length(test)
+ if (test[i] > max_n)
+ max_n = test[i]
+ max_i = i
+ end
+ end
+ println("Max index for $test: $(max_i - 1) => $max_n)")
+end
diff --git a/challenge-182/laurent-rosenfeld/python/ch-1.py b/challenge-182/laurent-rosenfeld/python/ch-1.py
new file mode 100644
index 0000000000..34bc6b2139
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/python/ch-1.py
@@ -0,0 +1,8 @@
+for test in [5, 2, 9, 1, 7, 6], [4, 2, 3, 1, 5, 0]:
+ max_i = 0
+ max_n = test[0]
+ for i in range(1, len(test)):
+ if test[i] > max_n:
+ max_n = test[i]
+ max_i = i
+ print("Max index for ", test, ": ", max_i, " => ", max_n)
diff --git a/challenge-182/laurent-rosenfeld/ring/ch-1.ring b/challenge-182/laurent-rosenfeld/ring/ch-1.ring
new file mode 100644
index 0000000000..ac3c5f5bae
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/ring/ch-1.ring
@@ -0,0 +1,14 @@
+for test in [[5, 2, 9, 1, 7, 6], [4, 2, 3, 1, 5, 0]]
+ max_i = 1
+ max_n = test[1]
+ str = ""
+ for i = 1 to len(test)
+ str = str + test[i] + " "
+ if test[i] > max_n
+ max_n = test[i]
+ max_i = i
+ ok
+ next
+ see "Max index for " + str + ": " +
+ (max_i - 1) + " => " + max_n + nl
+next
diff --git a/challenge-182/laurent-rosenfeld/ruby/ch-1.rb b/challenge-182/laurent-rosenfeld/ruby/ch-1.rb
new file mode 100644
index 0000000000..97901c05ed
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/ruby/ch-1.rb
@@ -0,0 +1,11 @@
+for test in [[5, 2, 9, 1, 7, 6], [4, 2, 3, 1, 5, 0]]
+ max_i = 0
+ max_n = test[0]
+ for i in 1..(test.length - 1)
+ if test[i] > max_n
+ max_n = test[i]
+ max_i = i
+ end
+ end
+ printf("Max index for %s: %d => %d\n", test.to_s, max_i, max_n)
+end
diff --git a/challenge-182/laurent-rosenfeld/scala/ch-1.scala b/challenge-182/laurent-rosenfeld/scala/ch-1.scala
new file mode 100644
index 0000000000..d1febfaa70
--- /dev/null
+++ b/challenge-182/laurent-rosenfeld/scala/ch-1.scala
@@ -0,0 +1,16 @@
+object fraction_tree extends App {
+
+ val tests: List[List[Int]] =
+ List(List(5, 2, 9, 1, 7, 6), List(4, 2, 3, 1, 5, 0))
+ for (test <- tests) {
+ var max_i = 0
+ var max_n = test(max_i)
+ for (i <- 1 to test.length - 1) {
+ if (test(i) > max_n) {
+ max_n = test(i)
+ max_i = i
+ }
+ }
+ println("Max index for " + test.mkString(" ") + s": $max_i => $max_n")
+ }
+}