aboutsummaryrefslogtreecommitdiff
path: root/challenge-119/abigail/ruby
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-07-02 22:18:56 +0200
committerAbigail <abigail@abigail.be>2021-07-02 22:18:56 +0200
commit41a4c746045ace71c5d5ec026345809adbe4275f (patch)
treeefc42bb185d9a1ed0fbc4a622f6ce827df333b3d /challenge-119/abigail/ruby
parent0fadd390f0c5b8b1421c9acb8467db4cf199d819 (diff)
downloadperlweeklychallenge-club-41a4c746045ace71c5d5ec026345809adbe4275f.tar.gz
perlweeklychallenge-club-41a4c746045ace71c5d5ec026345809adbe4275f.tar.bz2
perlweeklychallenge-club-41a4c746045ace71c5d5ec026345809adbe4275f.zip
Ruby solution for week 119, part 2
Diffstat (limited to 'challenge-119/abigail/ruby')
-rw-r--r--challenge-119/abigail/ruby/ch-2.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-119/abigail/ruby/ch-2.rb b/challenge-119/abigail/ruby/ch-2.rb
new file mode 100644
index 0000000000..55ac672fca
--- /dev/null
+++ b/challenge-119/abigail/ruby/ch-2.rb
@@ -0,0 +1,27 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-2.rb < input-file
+#
+
+def next_num (prev_num)
+ ("0" + prev_num) . match (/^(.*)([012])(3*)$/) do
+ |match|
+ return (match [1] + (1 + match [2] . to_i) . to_s +
+ match [3] . gsub(/3/, "1")) . gsub(/11/, "12") . gsub(/^0/, "")
+ end
+end
+
+
+ARGF . each_line do
+ |num|
+ number = "0"
+ for i in 1 .. num . to_i do
+ number = next_num (number)
+ end
+ puts (number)
+end