diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-26 22:53:24 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-26 22:53:24 +0100 |
| commit | c60a02b90df3d66d63b69db3ade3dafdf40f0db1 (patch) | |
| tree | 45d371e9e82b6d1af54ef769b7d9c3d7995cf89a /challenge-114 | |
| parent | 581b155cfe4c42c7061b07f9e756ac7ddc3ea56b (diff) | |
| download | perlweeklychallenge-club-c60a02b90df3d66d63b69db3ade3dafdf40f0db1.tar.gz perlweeklychallenge-club-c60a02b90df3d66d63b69db3ade3dafdf40f0db1.tar.bz2 perlweeklychallenge-club-c60a02b90df3d66d63b69db3ade3dafdf40f0db1.zip | |
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-114')
| -rw-r--r-- | challenge-114/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/perl/ch-1.pl | 9 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/perl/ch-2.pl | 16 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/raku/ch-1.raku | 8 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/raku/ch-2.raku | 13 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/scala/ch-1.scala | 11 | ||||
| -rw-r--r-- | challenge-114/laurent-rosenfeld/scala/ch-2.scala | 21 |
7 files changed, 79 insertions, 0 deletions
diff --git a/challenge-114/laurent-rosenfeld/blog.txt b/challenge-114/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..285fb333a3 --- /dev/null +++ b/challenge-114/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2021/05/perl-weekly-challenge-114-next-palindrome-number-and-higher-integer-set-bits.html diff --git a/challenge-114/laurent-rosenfeld/perl/ch-1.pl b/challenge-114/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..d0feb4aa96 --- /dev/null +++ b/challenge-114/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,9 @@ +use strict; +use warnings; +use feature "say"; + +my $num = shift // 1234; +$num =~ s/^0+//; # remove leading 0s just in case +while (++ $num) { + say $num and last if $num eq reverse $num; +} diff --git a/challenge-114/laurent-rosenfeld/perl/ch-2.pl b/challenge-114/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..866f72a079 --- /dev/null +++ b/challenge-114/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,16 @@ +use strict; +use warnings; +use feature "say"; + +sub number_of_1 { + my $in = shift; + my $count = 0; + $count += $_ for split //, sprintf "%b", $in; + return $count; +} + +my $num = shift // 3; +my $target = number_of_1 $num; +while (++ $num) { + say $num and last if $target == number_of_1 $num; +} diff --git a/challenge-114/laurent-rosenfeld/raku/ch-1.raku b/challenge-114/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..3931165d0c --- /dev/null +++ b/challenge-114/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,8 @@ +use v6; + +my $input = @*ARGS[0] // 1234; +for $input .. Inf -> $candidate { + next unless $candidate eq $candidate.flip; + say $candidate; + last; +} diff --git a/challenge-114/laurent-rosenfeld/raku/ch-2.raku b/challenge-114/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..9e5957113c --- /dev/null +++ b/challenge-114/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,13 @@ +use v6; + +sub number_of_1 (Int $in) { + my $count = [+] $in.base(2).comb; +} + +my $input = @*ARGS[0] // 3; +my $target = number_of_1 $input.Int; +for $input ^.. Inf -> $candidate { + next unless $candidate.Int.&number_of_1 == $target; + say $candidate; + last; +} diff --git a/challenge-114/laurent-rosenfeld/scala/ch-1.scala b/challenge-114/laurent-rosenfeld/scala/ch-1.scala new file mode 100644 index 0000000000..0b6e900cfc --- /dev/null +++ b/challenge-114/laurent-rosenfeld/scala/ch-1.scala @@ -0,0 +1,11 @@ +object palindrome extends App { + var num = 1234 + var found = 0 + while (found == 0) { + if (num.toString == num.toString.reverse) { + println(num) + found = 1 + } + num += 1 + } +} diff --git a/challenge-114/laurent-rosenfeld/scala/ch-2.scala b/challenge-114/laurent-rosenfeld/scala/ch-2.scala new file mode 100644 index 0000000000..1bd7fb90cb --- /dev/null +++ b/challenge-114/laurent-rosenfeld/scala/ch-2.scala @@ -0,0 +1,21 @@ +object nextbin extends App { + + def number_of_1(in: Int): Int = { + val binlist = in.toBinaryString.toList + var count = 0 + for (char <- binlist) { + if (char == '1') count += 1 + } + return count + } + var num = 111 + val target = number_of_1(num) + var found = 0 + while (found == 0) { + num += 1 + if (number_of_1(num) == target) { + println(num) + found = 1 + } + } +} |
