diff options
Diffstat (limited to 'challenge-003/abigail/go')
| -rw-r--r-- | challenge-003/abigail/go/ch-1.go | 47 | ||||
| -rw-r--r-- | challenge-003/abigail/go/ch-2.go | 40 |
2 files changed, 87 insertions, 0 deletions
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-003/abigail/go/ch-2.go b/challenge-003/abigail/go/ch-2.go new file mode 100644 index 0000000000..d66b10dec9 --- /dev/null +++ b/challenge-003/abigail/go/ch-2.go @@ -0,0 +1,40 @@ +package main + +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-003 +// + +// +// Run as: go run ch-2.go < input-file +// + +import ( + "fmt" +) + +func main () { + for { + var max int + n, err := fmt . Scanf ("%d", &max) + if n != 1 || err != nil { + break + } + + current_row := make ([] int, 1) + current_row [0] = 1; + fmt . Printf ("1\n") + + for row := 1; row <= max; row ++ { + next_row := make ([] int, row + 1) + next_row [0] = 1 + next_row [row] = 1 + fmt . Printf ("1 ") + for col := 1; col < row; col ++ { + next_row [col] = current_row [col - 1] + current_row [col] + fmt . Printf ("%d ", next_row [col]) + } + fmt . Printf ("1\n") + current_row = next_row + } + } +} |
