aboutsummaryrefslogtreecommitdiff
path: root/challenge-003/abigail/ruby
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-003/abigail/ruby')
-rw-r--r--challenge-003/abigail/ruby/ch-1.rb26
-rw-r--r--challenge-003/abigail/ruby/ch-2.rb39
2 files changed, 65 insertions, 0 deletions
diff --git a/challenge-003/abigail/ruby/ch-1.rb b/challenge-003/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..c0a22397b0
--- /dev/null
+++ b/challenge-003/abigail/ruby/ch-1.rb
@@ -0,0 +1,26 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+ARGF . each_line do |_|
+ max = _ . to_i
+ base2 = 1
+ while base2 <= max
+ base3 = base2
+ while base3 <= max
+ base5 = base3
+ while base5 <= max
+ puts base5
+ base5 *= 5
+ end
+ base3 *= 3
+ end
+ base2 *= 2
+ end
+end
diff --git a/challenge-003/abigail/ruby/ch-2.rb b/challenge-003/abigail/ruby/ch-2.rb
new file mode 100644
index 0000000000..85736b99cb
--- /dev/null
+++ b/challenge-003/abigail/ruby/ch-2.rb
@@ -0,0 +1,39 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-2.rb < input-file
+#
+
+ARGF . each_line do |_|
+ rows = _ . to_i
+
+ #
+ # 0-th row
+ #
+ row = [1]
+ puts row [0]
+ for r in 1 .. rows do
+ #
+ # Create new row
+ #
+ new = []
+ for i in 0 .. r do
+ new [i] = (i == 0 ? 0 : row [i - 1]) +
+ (i == r ? 0 : row [i])
+ if i > 0
+ then print " "
+ end
+ print new [i]
+ end
+ puts ""
+
+ #
+ # New row becomes current row
+ #
+ row = new
+ end
+end