aboutsummaryrefslogtreecommitdiff
path: root/challenge-126/abigail
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-08-20 00:28:38 +0200
committerAbigail <abigail@abigail.be>2021-08-20 00:28:38 +0200
commite5918fc89ecab96a9bee4940f85db02fd174ffba (patch)
tree052f555a4f43f2f34e09d789daf098c3265c8298 /challenge-126/abigail
parentceeeb1bec20fca90c87aa2c00ccb30d3cb4ae60b (diff)
downloadperlweeklychallenge-club-e5918fc89ecab96a9bee4940f85db02fd174ffba.tar.gz
perlweeklychallenge-club-e5918fc89ecab96a9bee4940f85db02fd174ffba.tar.bz2
perlweeklychallenge-club-e5918fc89ecab96a9bee4940f85db02fd174ffba.zip
Ruby solution for week 126, part 1
Diffstat (limited to 'challenge-126/abigail')
-rw-r--r--challenge-126/abigail/README.md1
-rw-r--r--challenge-126/abigail/ruby/ch-1.rb27
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-126/abigail/README.md b/challenge-126/abigail/README.md
index b6e47b7da1..f030490973 100644
--- a/challenge-126/abigail/README.md
+++ b/challenge-126/abigail/README.md
@@ -33,6 +33,7 @@ There are 13 numbers between `1` and `25` that don't contain digit `1`:
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
* [Python](python/ch-1.py)
+* [Ruby](ruby/ch-1.rb)
### Blog
[Perl Weekly Challenge 126: Count Numbers][blog1]
diff --git a/challenge-126/abigail/ruby/ch-1.rb b/challenge-126/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..1f8e38655f
--- /dev/null
+++ b/challenge-126/abigail/ruby/ch-1.rb
@@ -0,0 +1,27 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+ARGF . each_line do
+ |n|
+ result = 0
+ seen_one = false
+ n . scan(/[0-9]/) do
+ |digit|
+ result *= 9
+ if (seen_one)
+ result += 8
+ elsif (digit == "1")
+ seen_one = true
+ elsif (digit != "0")
+ result += digit . to_i - 1
+ end
+ end
+ puts (result)
+end