diff options
| -rw-r--r-- | challenge-117/abigail/README.md | 4 | ||||
| -rw-r--r-- | challenge-117/abigail/go/ch-1.go | 50 | ||||
| -rw-r--r-- | challenge-117/abigail/go/ch-2.go | 34 | ||||
| -rw-r--r-- | challenge-117/abigail/java/ch-1.java | 43 | ||||
| -rw-r--r-- | challenge-117/abigail/java/ch-2.java | 31 |
5 files changed, 162 insertions, 0 deletions
diff --git a/challenge-117/abigail/README.md b/challenge-117/abigail/README.md index 7a565610d2..7db94b7f39 100644 --- a/challenge-117/abigail/README.md +++ b/challenge-117/abigail/README.md @@ -27,6 +27,8 @@ Write a script to find the missing row number. * [AWK](awk/ch-1.awk) * [Bash](bash/ch-1.sh) * [C](c/ch-1.c) +* [Go](go/ch-1.go) +* [Java](java/ch-1.java) * [Lua](lua/ch-1.lua) * [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) @@ -75,6 +77,8 @@ Output: R, LH * [AWK](awk/ch-2.awk) * [Bash](bash/ch-2.sh) * [C](c/ch-2.c) +* [Go](go/ch-2.go) +* [Java](java/ch-1.java) * [Lua](lua/ch-2.lua) * [Node.js](node/ch-2.js) * [Perl](perl/ch-2.pl) diff --git a/challenge-117/abigail/go/ch-1.go b/challenge-117/abigail/go/ch-1.go new file mode 100644 index 0000000000..70da9a07bd --- /dev/null +++ b/challenge-117/abigail/go/ch-1.go @@ -0,0 +1,50 @@ +package main + +// +// See ../README.md +// + +// +// Run as: go run ch-1.go +// + +import ( + "fmt" + "bufio" + "os" +) + +func main () { + var i int + var sum int = 0 + var SUM_15 int = 120 + + var reader = bufio . NewReader (os. Stdin) + for { + var text, err1 = reader . ReadString ('\n') + if (err1 != nil) { + // + // Break the loop on error -- EOF is an error + // + break + } + // + // Atoi isn't like atoi in C, so we use Sscanf + // + var n, err2 = fmt . Sscanf (text, "%d", &i) + if (n < 1 || err2 != nil) { + // + // If we can't scan, ignore the line + // + continue + } + // + // Tally the line numbers + // + sum += i + } + // + // Missing line number is 120 minus the tally + // + fmt . Printf ("%d\n", SUM_15 - sum) +} diff --git a/challenge-117/abigail/go/ch-2.go b/challenge-117/abigail/go/ch-2.go new file mode 100644 index 0000000000..02d2dc2e91 --- /dev/null +++ b/challenge-117/abigail/go/ch-2.go @@ -0,0 +1,34 @@ +package main + +// +// See ../README.md +// + +// +// Run as: go run ch-2.go +// + +import ( + "fmt" +) + +func steps (x int, y int, path string) { + if (x == 0 && y == 0) { + fmt . Println (path) + } + if (x > 0) { + steps (x - 1, y + 1, path + "L") + steps (x - 1, y, path + "R") + } + if (y > 0) { + steps (x, y - 1, path + "H") + } +} + +func main () { + var x int + var n, err = fmt . Scanf ("%d", &x) + if (n == 1 && err == nil) { + steps (x, 0, "") + } +} diff --git a/challenge-117/abigail/java/ch-1.java b/challenge-117/abigail/java/ch-1.java new file mode 100644 index 0000000000..6a03391c2e --- /dev/null +++ b/challenge-117/abigail/java/ch-1.java @@ -0,0 +1,43 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1 < input-file +// + +import java.util.*; + +public class ch1 { + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + int sum = 0; + int SUM_15 = 120; + try { + while (true) { + String line = scanner . nextLine (); + // + // Googling suggest Java has a gazillion methods to + // convert string to integers -- and they all crap + // out if the string starts with a number, and has + // anything trailing. None of them actually similate atoi. + // + // So, handrolling it is! + // + int i, n = 0; + for (i = 0; i < line . length (); i ++) { + if (line . charAt (i) < "0" . charAt (0) || + line . charAt (i) > "9" . charAt (0)) { + break; + } + n *= 10; + n += line . charAt (i) - "0" . charAt (0); + } + sum += n; + } + } + catch (Exception e) { + System . out . println (SUM_15 - sum); + } + } +} diff --git a/challenge-117/abigail/java/ch-2.java b/challenge-117/abigail/java/ch-2.java new file mode 100644 index 0000000000..05ebce2e86 --- /dev/null +++ b/challenge-117/abigail/java/ch-2.java @@ -0,0 +1,31 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file +// + +import java.util.*; + + +public class ch2 { + static void steps (int x, int y, String path) { + if (x == 0 && y == 0) { + System . out . println (path); + } + if (x > 0) { + steps (x - 1, y + 1, path + "L"); + steps (x - 1, y, path + "R"); + } + if (y > 0) { + steps (x, y - 1, path + "H"); + } + } + + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + int size = scanner . nextInt (); + steps (size, 0, ""); + } +} |
