aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-06-27 19:44:10 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-06-27 19:44:10 +0100
commitfaa3b35af8369c6464a88dd9c8855f456cd0f258 (patch)
tree4eaa3400ff4047e6702c75e963c9ceb838f4a9a7
parent8d9be775845633e0410cf4a661df9d0bd691a85d (diff)
downloadperlweeklychallenge-club-faa3b35af8369c6464a88dd9c8855f456cd0f258.tar.gz
perlweeklychallenge-club-faa3b35af8369c6464a88dd9c8855f456cd0f258.tar.bz2
perlweeklychallenge-club-faa3b35af8369c6464a88dd9c8855f456cd0f258.zip
- Added Crystal solution by Gabor Szabo.
-rw-r--r--challenge-118/szabgab/README1
-rw-r--r--challenge-118/szabgab/crystal/spec/palindrome_spec.cr15
-rw-r--r--challenge-118/szabgab/crystal/src/palindrome.cr5
-rw-r--r--challenge-118/szabgab/crystal/src/use_palindrome.cr10
-rw-r--r--guests.json1
5 files changed, 32 insertions, 0 deletions
diff --git a/challenge-118/szabgab/README b/challenge-118/szabgab/README
new file mode 100644
index 0000000000..6c6f4aa994
--- /dev/null
+++ b/challenge-118/szabgab/README
@@ -0,0 +1 @@
+Solutions by Gabor Szabo.
diff --git a/challenge-118/szabgab/crystal/spec/palindrome_spec.cr b/challenge-118/szabgab/crystal/spec/palindrome_spec.cr
new file mode 100644
index 0000000000..97242168cb
--- /dev/null
+++ b/challenge-118/szabgab/crystal/spec/palindrome_spec.cr
@@ -0,0 +1,15 @@
+require "spec"
+require "../src/palindrome"
+
+describe "Palindrome" do
+ it "verify" do
+ palindrome?(5).should be_true
+ palindrome?(4).should be_false
+ palindrome?(15).should be_true
+ palindrome?(14).should be_false
+ palindrome?(0).should be_true
+ expect_raises(ArgumentError, "Negative number not accepted") do
+ palindrome?(-1)
+ end
+ end
+end
diff --git a/challenge-118/szabgab/crystal/src/palindrome.cr b/challenge-118/szabgab/crystal/src/palindrome.cr
new file mode 100644
index 0000000000..3f2bf495fa
--- /dev/null
+++ b/challenge-118/szabgab/crystal/src/palindrome.cr
@@ -0,0 +1,5 @@
+def palindrome?(n : Int32)
+ raise ArgumentError.new("Negative number not accepted") if n < 0
+ binary = sprintf("%b", n)
+ return binary == binary.reverse
+end
diff --git a/challenge-118/szabgab/crystal/src/use_palindrome.cr b/challenge-118/szabgab/crystal/src/use_palindrome.cr
new file mode 100644
index 0000000000..5fb734b8ff
--- /dev/null
+++ b/challenge-118/szabgab/crystal/src/use_palindrome.cr
@@ -0,0 +1,10 @@
+require "./palindrome"
+
+if ARGV.size == 0
+ puts "Usage: #{PROGRAM_NAME} [NUMBERs]"
+ exit 1
+end
+
+ARGV.each {|number|
+ puts %[#{number} #{palindrome?(number.to_i) ? "Yes" : "No"}]
+}
diff --git a/guests.json b/guests.json
index 46b009d3a4..3d62b7a49c 100644
--- a/guests.json
+++ b/guests.json
@@ -5,6 +5,7 @@
"mfoda" : "Mohammad Foda",
"orestis-zekai" : "Orestis Zekai",
"shawak" : "Shawak",
+ "szabgab" : "Gabor Szabo",
"tyler-wardhaugh" : "Tyler Wardhaugh",
"ziameraj16" : "Mohammad Meraj Zia"
}