diff options
| author | Abigail <abigail@abigail.be> | 2021-11-27 20:19:48 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-27 20:19:48 +0100 |
| commit | 1b165d3e3899a7411dfa3dc965076c50c86ac942 (patch) | |
| tree | 91ed3a68b70b32ad3631cf7d7cb8ae15d36d313c | |
| parent | 6b37925eeb4cf7c6cc22c1ab72e00d257c1eebb2 (diff) | |
| download | perlweeklychallenge-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.md | 2 | ||||
| -rw-r--r-- | challenge-126/abigail/go/ch-1.go | 41 | ||||
| -rw-r--r-- | challenge-126/abigail/tcl/ch-1.tcl | 23 |
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 +} |
