From ea006adb9d66e2b866a61e37f35971a04f2714c6 Mon Sep 17 00:00:00 2001 From: Walt Mankowski Date: Fri, 15 Jul 2022 19:37:23 -0400 Subject: perl solution to challenge 1 --- challenge-173/walt-mankowski/perl/ch-1.pl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 challenge-173/walt-mankowski/perl/ch-1.pl 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"; -- cgit