aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-27 20:19:48 +0100
committerAbigail <abigail@abigail.be>2021-11-27 20:19:48 +0100
commit1b165d3e3899a7411dfa3dc965076c50c86ac942 (patch)
tree91ed3a68b70b32ad3631cf7d7cb8ae15d36d313c
parent6b37925eeb4cf7c6cc22c1ab72e00d257c1eebb2 (diff)
downloadperlweeklychallenge-club-1b165d3e3899a7411dfa3dc965076c50c86ac942.tar.gz
perlweeklychallenge-club-1b165d3e3899a7411dfa3dc965076c50c86ac942.tar.bz2
perlweeklychallenge-club-1b165d3e3899a7411dfa3dc965076c50c86ac942.zip
Two more solutions for week 126, part 1
-rw-r--r--challenge-126/abigail/README.md2
-rw-r--r--challenge-126/abigail/go/ch-1.go41
-rw-r--r--challenge-126/abigail/tcl/ch-1.tcl23
3 files changed, 66 insertions, 0 deletions
diff --git a/challenge-126/abigail/README.md b/challenge-126/abigail/README.md
index 07235caf33..954f574de7 100644
--- a/challenge-126/abigail/README.md
+++ b/challenge-126/abigail/README.md
@@ -29,11 +29,13 @@ There are 13 numbers between `1` and `25` that don't contain digit `1`:
* [AWK](awk/ch-1.awk)
* [Bash](bash/ch-1.sh)
* [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)
* [Python](python/ch-1.py)
* [Ruby](ruby/ch-1.rb)
+* [Tcl](tcl/ch-1.tcl)
### Blog
[Perl Weekly Challenge 126: Count Numbers][blog1]
diff --git a/challenge-126/abigail/go/ch-1.go b/challenge-126/abigail/go/ch-1.go
new file mode 100644
index 0000000000..a769bbf4af
--- /dev/null
+++ b/challenge-126/abigail/go/ch-1.go
@@ -0,0 +1,41 @@
+package main
+
+//
+// See ../README.md
+//
+
+//
+// Run as: go run ch-1.go
+//
+
+import (
+ "fmt"
+ "bufio"
+ "os"
+)
+
+func main () {
+ var reader = bufio . NewReader (os. Stdin)
+ for {
+ var text, err = reader . ReadString ('\n')
+ if (err != nil) {
+ break
+ }
+ result := 0
+ seen_one := false
+ for _, digit := range text {
+ if digit < '0' || digit > '9' {
+ continue
+ }
+ result = 9 * result
+ if seen_one {
+ result += 8
+ } else if digit == '1' {
+ seen_one = true
+ } else if digit != '0' {
+ result = result + int (digit - '0') - 1
+ }
+ }
+ fmt . Println (result)
+ }
+}
diff --git a/challenge-126/abigail/tcl/ch-1.tcl b/challenge-126/abigail/tcl/ch-1.tcl
new file mode 100644
index 0000000000..664cf75b90
--- /dev/null
+++ b/challenge-126/abigail/tcl/ch-1.tcl
@@ -0,0 +1,23 @@
+#
+# See ../README.md
+#
+
+#
+# Run as: tclsh ch-1.tcl < input-file
+#
+
+while {[gets stdin line] >= 0} {
+ set result 0
+ set seen_one 0
+ foreach char [split $line ""] {
+ set result [expr 9 * $result]
+ if {$seen_one == 1} {
+ set result [expr $result + 8]
+ } elseif {$char == 1} {
+ set seen_one 1
+ } elseif {$char > 0} {
+ set result [expr $result + $char - 1]
+ }
+ }
+ puts $result
+}