aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalt Mankowski <waltman@pobox.com>2022-07-15 19:37:23 -0400
committerWalt Mankowski <waltman@pobox.com>2022-07-15 19:37:23 -0400
commitea006adb9d66e2b866a61e37f35971a04f2714c6 (patch)
treee1dabf64db7a18c74aaf764d95304c5840c9cb1d
parent6b83acc095e4f60b07d0f4dee6286d77cbc2a734 (diff)
downloadperlweeklychallenge-club-ea006adb9d66e2b866a61e37f35971a04f2714c6.tar.gz
perlweeklychallenge-club-ea006adb9d66e2b866a61e37f35971a04f2714c6.tar.bz2
perlweeklychallenge-club-ea006adb9d66e2b866a61e37f35971a04f2714c6.zip
perl solution to challenge 1
-rw-r--r--challenge-173/walt-mankowski/perl/ch-1.pl27
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-173/walt-mankowski/perl/ch-1.pl b/challenge-173/walt-mankowski/perl/ch-1.pl
new file mode 100644
index 0000000000..4f5a49952f
--- /dev/null
+++ b/challenge-173/walt-mankowski/perl/ch-1.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/env perl
+use v5.36;
+
+# Task 1: Esthetic Number
+#
+# You are given a positive integer, $n.
+#
+# Write a script to find out if the given number is Esthetic Number.
+#
+# An esthetic number is a positive integer where every adjacent
+# digit differs from its neighbour by 1.
+#
+# For example,
+#
+# 5456 is an esthetic number as |5 - 4| = |4 - 5| = |5 - 6| = 1
+# 120 is not an esthetic number as |1 - 2| != |2 - 0| != 1
+
+sub is_esthetic($n) {
+ my @d = split //, $n;
+ for my $i (1..$#d) {
+ return 0 unless abs($d[$i-1] - $d[$i]) == 1;
+ }
+ return 1;
+}
+
+my $n = @ARGV[0];
+printf "%d is%s an esthetic number\n", $n, is_esthetic($n) ? "" : " not";