diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-27 19:44:10 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-27 19:44:10 +0100 |
| commit | faa3b35af8369c6464a88dd9c8855f456cd0f258 (patch) | |
| tree | 4eaa3400ff4047e6702c75e963c9ceb838f4a9a7 | |
| parent | 8d9be775845633e0410cf4a661df9d0bd691a85d (diff) | |
| download | perlweeklychallenge-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/README | 1 | ||||
| -rw-r--r-- | challenge-118/szabgab/crystal/spec/palindrome_spec.cr | 15 | ||||
| -rw-r--r-- | challenge-118/szabgab/crystal/src/palindrome.cr | 5 | ||||
| -rw-r--r-- | challenge-118/szabgab/crystal/src/use_palindrome.cr | 10 | ||||
| -rw-r--r-- | guests.json | 1 |
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" } |
