diff options
| author | Abigail <abigail@abigail.be> | 2021-11-02 00:40:03 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-02 00:40:03 +0100 |
| commit | 6b972ea8100cf12dfdc2f92dbf8ba66dc3c98725 (patch) | |
| tree | d0e2d44f8971f75df6bdb9a583a63f386de89b6c | |
| parent | 6d9e22bb702f40d07b0cf18439106eb0748e1b3c (diff) | |
| download | perlweeklychallenge-club-6b972ea8100cf12dfdc2f92dbf8ba66dc3c98725.tar.gz perlweeklychallenge-club-6b972ea8100cf12dfdc2f92dbf8ba66dc3c98725.tar.bz2 perlweeklychallenge-club-6b972ea8100cf12dfdc2f92dbf8ba66dc3c98725.zip | |
Ruby solutions for week 137
| -rw-r--r-- | challenge-137/abigail/ruby/ch-1.rb | 41 | ||||
| -rw-r--r-- | challenge-137/abigail/ruby/ch-2.rb | 30 |
2 files changed, 71 insertions, 0 deletions
diff --git a/challenge-137/abigail/ruby/ch-1.rb b/challenge-137/abigail/ruby/ch-1.rb new file mode 100644 index 0000000000..c543cf3291 --- /dev/null +++ b/challenge-137/abigail/ruby/ch-1.rb @@ -0,0 +1,41 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-1.rb +# + + +start_years = [1600, 2000] +long_year_offsets = [ + 4, 9, 15, 20, 26, + 32, 37, 43, 48, 54, + 60, 65, 71, 76, 82, + 88, 93, 99, + 105, 111, 116, 122, + 128, 133, 139, 144, 150, + 156, 161, 167, 172, 178, + 184, 189, 195, + 201, 207, 212, 218, + 224, 229, 235, 240, 246, + 252, 257, 263, 268, 274, + 280, 285, 291, 296, + 303, 308, 314, + 320, 325, 331, 336, 342, + 348, 353, 359, 364, 370, + 376, 381, 387, 392, 398 +] + +start_years . each do + | start_year | + long_year_offsets . each do + | offset | + year = start_year + offset + if 1900 <= year and year <= 2100 then + puts (year) + end + end +end diff --git a/challenge-137/abigail/ruby/ch-2.rb b/challenge-137/abigail/ruby/ch-2.rb new file mode 100644 index 0000000000..ed5b73c51f --- /dev/null +++ b/challenge-137/abigail/ruby/ch-2.rb @@ -0,0 +1,30 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-2.rb < input-file +# + +def reverse (num) + rev = 0 + while num > 0 do + rev *= 10 + rev += num % 10 + num /= 10 + end + return rev +end + +def ly (num) + return num >= 10000000 ? 1 + : num == reverse(num) ? 0 + : ly(num + reverse(num)) +end + +ARGF . each_line do + | number | + puts (ly(number . to_i)) +end |
