aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-06 15:33:59 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-06 15:33:59 +0100
commitbccd1e3a8efb165516051edab359b83b4b86cf03 (patch)
treefbf9f9af9b3e47892337b7bdd7bfb090eb24d90f
parent27889f392ae8b7b56530ad79424eb9054a249275 (diff)
downloadperlweeklychallenge-club-bccd1e3a8efb165516051edab359b83b4b86cf03.tar.gz
perlweeklychallenge-club-bccd1e3a8efb165516051edab359b83b4b86cf03.tar.bz2
perlweeklychallenge-club-bccd1e3a8efb165516051edab359b83b4b86cf03.zip
Week 3 & Week 123. Go solutions for part 1.
-rw-r--r--challenge-003/abigail/README.md1
-rw-r--r--challenge-003/abigail/go/ch-1.go47
-rw-r--r--challenge-123/abigail/README.md1
-rw-r--r--challenge-123/abigail/go/ch-1.go47
4 files changed, 96 insertions, 0 deletions
diff --git a/challenge-003/abigail/README.md b/challenge-003/abigail/README.md
index 83d08b3cd7..742ccb1714 100644
--- a/challenge-003/abigail/README.md
+++ b/challenge-003/abigail/README.md
@@ -5,6 +5,7 @@
* [Bash](bash/ch-1.sh)
* [bc](bc/ch-1.bc)
* [C](c/ch-1.c)
+* [Go](go/ch-1.go)
* [Lua](lua/ch-1.lua)
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
diff --git a/challenge-003/abigail/go/ch-1.go b/challenge-003/abigail/go/ch-1.go
new file mode 100644
index 0000000000..03229cb964
--- /dev/null
+++ b/challenge-003/abigail/go/ch-1.go
@@ -0,0 +1,47 @@
+package main
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-003
+//
+
+//
+// Run as: go run ch-1.go < input-file
+//
+
+import (
+ "fmt"
+)
+
+func main () {
+ var max int
+ for {
+ n, err := fmt . Scanf ("%d", &max)
+ if (n != 1 || err != nil) {
+ break
+ }
+ ugly := make ([] int, max)
+ ugly [0] = 1
+ count := 0
+ next_2 := 0
+ next_3 := 0
+ next_5 := 0
+ min := 0
+
+ for count < max - 1 {
+ count ++
+
+ c2 := 2 * ugly [next_2]
+ c3 := 3 * ugly [next_3]
+ c5 := 5 * ugly [next_5]
+ if c2 <= c3 && c2 <= c5 {min = c2}
+ if c3 <= c2 && c3 <= c5 {min = c3}
+ if c5 <= c2 && c5 <= c3 {min = c5}
+ ugly [count] = min
+
+ if (c2 <= ugly [count]) {next_2 ++}
+ if (c3 <= ugly [count]) {next_3 ++}
+ if (c5 <= ugly [count]) {next_5 ++}
+ }
+ fmt . Println (ugly [count])
+ }
+}
diff --git a/challenge-123/abigail/README.md b/challenge-123/abigail/README.md
index b3a9755e81..da26e4f567 100644
--- a/challenge-123/abigail/README.md
+++ b/challenge-123/abigail/README.md
@@ -23,6 +23,7 @@ Output: 12
* [Bash](bash/ch-1.sh)
* [bc](bc/ch-1.bc)
* [C](c/ch-1.c)
+* [Go](go/ch-1.go)
* [Lua](lua/ch-1.lua)
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
diff --git a/challenge-123/abigail/go/ch-1.go b/challenge-123/abigail/go/ch-1.go
new file mode 100644
index 0000000000..01e14fdef8
--- /dev/null
+++ b/challenge-123/abigail/go/ch-1.go
@@ -0,0 +1,47 @@
+package main
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-123
+//
+
+//
+// Run as: go run ch-1.go < input-file
+//
+
+import (
+ "fmt"
+)
+
+func main () {
+ var max int
+ for {
+ n, err := fmt . Scanf ("%d", &max)
+ if (n != 1 || err != nil) {
+ break
+ }
+ ugly := make ([] int, max)
+ ugly [0] = 1
+ count := 0
+ next_2 := 0
+ next_3 := 0
+ next_5 := 0
+ min := 0
+
+ for count < max - 1 {
+ count ++
+
+ c2 := 2 * ugly [next_2]
+ c3 := 3 * ugly [next_3]
+ c5 := 5 * ugly [next_5]
+ if c2 <= c3 && c2 <= c5 {min = c2}
+ if c3 <= c2 && c3 <= c5 {min = c3}
+ if c5 <= c2 && c5 <= c3 {min = c5}
+ ugly [count] = min
+
+ if (c2 <= ugly [count]) {next_2 ++}
+ if (c3 <= ugly [count]) {next_3 ++}
+ if (c5 <= ugly [count]) {next_5 ++}
+ }
+ fmt . Println (ugly [count])
+ }
+}