diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-06 15:33:59 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-06 15:33:59 +0100 |
| commit | bccd1e3a8efb165516051edab359b83b4b86cf03 (patch) | |
| tree | fbf9f9af9b3e47892337b7bdd7bfb090eb24d90f | |
| parent | 27889f392ae8b7b56530ad79424eb9054a249275 (diff) | |
| download | perlweeklychallenge-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.md | 1 | ||||
| -rw-r--r-- | challenge-003/abigail/go/ch-1.go | 47 | ||||
| -rw-r--r-- | challenge-123/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-123/abigail/go/ch-1.go | 47 |
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]) + } +} |
